本来想通过tid为索引建个表来实现该功能,没想到已经有现成的机制。。
单个线程的特有数据,介于全局变量和局部变量之间。
linux:
方法一:int pthread_key_create(pthread_key_t *key, void (*destructor)(void*));
int pthread_key_delete(pthread_key_t key);
void *pthread_getspecific(pthread_key_t key);
int pthread_setspecific(pthread_key_t key, const void *value);
方法二:
__thread int i;
方法一:
DWORD TlsAlloc(VOID);
BOOL TlsFree(
DWORD dwTlsIndex // TLS index
);
BOOL TlsSetValue(
DWORD dwTlsIndex, // TLS index
LPVOID lpTlsValue // value to store
);
LPVOID TlsGetValue(
DWORD dwTlsIndex // TLS index
);
方法二:
__declspec( thread ) int tls_i = 1;
参考:https://blog.csdn.net/cywosp/article/details/26469435