
多线程编程
文章平均质量分 64
Think_Idea
水滴石穿
展开
-
每天进步一点点——Linux中的线程局部存储(二)
转载:http://blog.youkuaiyun.com/cywosp/article/details/26876231 在Linux中还有一种更为高效的线程局部存储方法,就是使用关键字__thread来定义变量。__thread是GCC内置的线程局部存储设施(Thread-Local Storage),它的实现非常高效,与pthread_key_t向比较更为快速,其存转载 2016-03-07 17:53:44 · 416 阅读 · 0 评论 -
pthread_setspecific函数与pthread_getspecific函数
函数原型:int pthread_setspecific(pthread_key_t key, const void *value);功能:使用pthread_setspecific可以为指定线程特定数据键设置线程特定绑定头文件:#include 由于pthread库非linux默认库,所以需要手动链接 -lpthread形参: key:需要关联的键原创 2016-03-07 16:48:48 · 15158 阅读 · 0 评论 -
pthread_key_delete函数
函数原型:int pthread_key_delete(pthread_key_t key);功能:销毁线程特定数据键。由于键已无效,因此将释放与该键关联的所有内存。在调用该函数之前必须释放所有线程的特定资源,‘该函数不会调用任何析构函数。反复调用pthread_key_create与pthread_key_delete可能会产生问题。对于每个所需的键,应当只调用pthread_key原创 2016-03-07 16:33:11 · 2874 阅读 · 0 评论 -
pthread_key_create函数
函数原型: int pthread_key_create(pthread_key_t *key, void(*destructor)(void*));功能: 分配用于表示进程中线程特定数据的键,键对进程中的所有线程来说是全局的。创建线程特定数据时,所有线程最初都具有与该键关联的NULL值。POSIX要求系统至少支持128TSD头文件:#include pthread非linux原创 2016-03-07 16:21:28 · 4348 阅读 · 0 评论 -
线程特定数据TSD及其实现原理
引言:单线程C程序有两类基本数据:局部数据和全局数据。对于多线程C程序,添加了第三类数据:线程特定数据那么为什么要引入线程特定数据呢?试想如果你的一个线程里面嵌套调用了很多函数,而你又想在这些函数之间使用一个公共的变量,如果在单线程C中,我们是不是就要声明一个全局变量了呢?是的。但是我们想使声明的这个全局变量只属于我们当前这个实例线程(同一个void *(*start_routin原创 2016-03-04 14:44:51 · 2983 阅读 · 0 评论 -
pthread_detach函数
函数原型:int pthread_detach(pthread_t tid);功能:pthread_join()函数的替代函数,可回收创建时detachstate属性设置为PTHREAD_CREATE_JOINABLE的线程的存储空间。该函数不会阻塞父线程。pthread_join()函数用于只是应用程序在线程tid终止时回收其存储空间。如果tid尚未终止,pthread_de原创 2016-03-04 10:25:19 · 13545 阅读 · 0 评论 -
pthread_join函数
函数原型:int pthread_join(pthread_t tid, void **status);功能:pthread_join()函数会一直阻塞调用线程(当前线程),直到指定的线程tid终止。当pthread_join()返回之后,应用程序可回收与已终止线程关联的任何数据存储空间(另外也可设置线程attr属性,当线程结束时直接回收资源)。如果没有必要等待特定的线程终止之后才进行原创 2016-03-03 21:13:14 · 18732 阅读 · 0 评论 -
pthread_create函数
函数原型:int pthread_create(pthread_t *tid, const pthread_attr_t *tattr, void*(*start_routine)(void *), void *arg);功能:创建一个新的线程,并将线程加入当前进程头文件:#include pthread非linux系统的默认库,需手动链接-线程库 -lpthread参数:ti原创 2016-03-02 22:42:40 · 5213 阅读 · 0 评论