pthread_getspecific()--读线程私有数据|pthread_setspecific()--写线程私有数据
2015-11-20 15:52
483 查看
原型: #include <pthread.h> void *pthread_getspecific(pthread_key_t key); int pthread_setspecific(pthread_key_t key, const void *value); 说明: TSD 的读写都通过上面两个专门的 Posix Thread 函数进行。 函数 pthread_setspecific() 将 pointer 的值 (不是锁指的内容) 与key 相关联。 函数 pthread_getspecific() 将与 key 相关联的数据读出来。返回的数据类型都是 void *,因此可以指向任何类型的数据。 在多线程程序中,经常要用全局变量来实现多个函数间的数据共享。由于数据空间是共享的,因此全局变量也为所有进程共有。但有时应用程序设计中必要提供线程私有的全局变量,这个变量仅在线程中有效,但却可以跨过多个函数访问。 比如在程序里可能需要每个线程维护一个链表,而会使用相同的函数来操作这个链表,最简单的方法就是使用同名而不同变量地址的线程相关数据结构。这样的数据结构可以由 Posix 线程库维护,成为线程私有数据 (Thread-specific Data,或称为 TSD)。
相关文章推荐
- 弹跳窗
- unity3d关于方法DontDestroyOnLoad的研究
- 机器学习之各种算法
- hdu1875 畅通工程再续 (KRUSKAL求最小生成树)
- 编译ffmpeg
- 高通AR-关于切换相机跟踪图片的控制
- Opencv中如何将两幅图像连接成一幅图像(Mat操作)
- 使用Javascript/jQuery将javascript对象转换为json格式数据
- KING_C#学习之QRCode二维码(二)—— 实现方式汇总
- AngularJS 的 Scope
- Oracle查找Web执行SQL
- 【转】Jmeter项目测试
- hihocoder #1121 : 二分图一•二分图判定
- varnish服务器在内存大量富余时使用交换空间的原因及解决方法
- varnish服务器在内存大量富余时使用交换空间的原因及解决方法
- varnish服务器在内存大量富余时使用交换空间的原因及解决方法
- Windows10 Redstone首个预览版即将发布 开始推送全新的预览分支
- 论文排版
- ABAP内表数据和JSON格式互转
- Android控件之RatingBar