Linux C中也有“ThreadLocal”

2014-11-23 23:35:14 · 作者: · 浏览: 11

现在在看Linux开发的书,接触到了多线程开发这一块,惊奇的发现用C写多线程程序,也有线程


内部变量的概念呢,甚至调用的接口和Java中的ThreadLocal非常像。


1.extern int pthread_key_create ((pthread_key_t *__key, void (*__destr_function) (void *)));


先使用该方法创建一个线程内的Key,且绑定一个函数在线程结束时回收Key对于的空间


2.extern int pthread_setspecific __P ((pthread_key_t __key,__const void *__pointer));


将线程数据和一个键绑定在一起


3.extern void *pthread_getspecific __P ((pthread_key_t __key));


获得线程数据


4.pthread_key_delete


删除Key及其对应的线程数据


看来编程语言都是相通的,果真不假啊。