Linux C中也有“ThreadLocal”


现在在看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及其对应的线程数据

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

相关内容