jww*_*jww 12 c c++ pthreads thread-local-storage thread-specific-storage
我读过Kerrisk的Linux编程接口:Linux和UNIX系统编程手册,第31章关于线程.本章包括线程特定数据(第31.3.4节)和线程本地存储(第31.4节).第663-669页介绍了这些主题.
线程特定数据(pthread_key_create,pthread_setspecific,pthread_getspecific,和朋友)看起来更加强大,但似乎多了几分使用麻烦,并显示使用内存管理器更频繁.
线程本地存储(__thread在静态和全局声明上)看起来不那么强大,因为它仅限于编译时间,但它似乎更容易使用,并且似乎在运行时不在内存管理器中.
关于运行时内存管理器我可能是错的,因为pthread_key_create在遇到__thread变量时可能会在幕后调用代码.
Kerrisk没有提供两种策略的比较/对比,他没有就何时使用哪种策略提出建议.
为问题添加上下文:我正在评估第三方库.库使用全局变量,也不能利用锁定了,我想在多线程程序中使用它.该程序使用线程来最小化网络延迟.
有没有赢家?或者有不同的情况需要使用其中一种吗?
| 归档时间: |
|
| 查看次数: |
6391 次 |
| 最近记录: |