一、概念
tls:Thread Local Storage,是Windows为解决一个进程中多个线程同时访问全局变量而提供的机制。
二、简单使用
1.测试代码
#include "stdio.h"
#include <WTypes.h>
static DWORD tls_index = 0;
static bool is_show_thread_begin = false;
static bool is_finish_work = false;
#define print_tls(module,index,value) \
printf("%s module , index %u, value %d\n", module, index, value)
DWORD WINAPI my_thread_work(LPVOID)
{
while(!is_show_thread_begin)
Sleep(100);
TlsSetValue(tls_index, (LPVOID)0);
int value = 0;
while((value = (int)TlsGetValue(tls_index)) < 3) {
Sleep(1000);
value++;
TlsSetValue(tls_index, (LPVOID)value);
print_tls("===my_thread_work", tls_index, (int)TlsGetValue(tls_index));
}
is_finish_work = true;;
return 0;
}
DWORD WINAPI my_thread_show(LPVOID)
{
is_show_thread_begin = t