TLS 编程一

来源:互联网 发布:淘宝客如何被卖家找到 编辑:程序博客网 时间:2024/04/29 12:14

TLS是什么?引用别人说的

TLS(Thread Local Storage,线程局部存储)是一种便利的编程机制。我们通常不使用,因此并不太关心。但是要压缩的原程序可能会用到它。事实上,Delphi 总是使用它,如果我们打算支持 Delphi 程序,最好兼容它。

TLS是Thread Local Storage(线程局部存储)的简称,是一项解决多线程内部变量使用问题的技术。用于将某些数据和一特定线程关联起来,即,这些数据为关联线程所独有(私有)。在多线程编程中, 同一个变量, 如果要让多个线程共享访问, 那么这个变量可以使用关键字volatile进行声明; 而如果一个变量不想被多个线程共享访问, 那么就应该使用TLS。


下面这个是一个最简单的例子!

#include <windows.h> #include <winnt.h> //使用TLS 的宏#pragma comment(linker, "/INCLUDE:__tls_used")//TLS的回调函数void NTAPI my_tls_callback(PVOID h, DWORD reason, PVOID pv)  { if( reason == DLL_PROCESS_ATTACH ){MessageBox(NULL,"hi,this is tls callback","title",MB_OK); } return; }//定义一个TLS段#pragma data_seg(".CRT$XLB")extern "C" PIMAGE_TLS_CALLBACK my_tls_callbacktbl[] = {my_tls_callback,0};#pragma data_seg() int main(void) { MessageBox(NULL,"为了证明,在我之前,TLS已经运行!","title",MB_OK); return 0; }


简单总结:在程序入口函数运行之前运行!所以,它可以用来做很多事情,所以你懂的!

 

 源码下载:http://download.csdn.net/detail/u012607841/6795699

0 0
原创粉丝点击