+ -
当前位置:首页 → 问答吧 → TLS(线程本地存储)在应用程序里有用吗?

TLS(线程本地存储)在应用程序里有用吗?

时间:2011-12-21

来源:互联网

我知道:在写DLL时,如果在导出函数里使用了全局(或者静态,差不多)变量且有对该变量的写操作,同时又想支持多线程调用时就要用到TLS(线程本地存储)。(当然,这种情况是应该尽量避免的,将这样的变量定义告诉调用者,给函数增加一个参数,接收此种变量的地址就可以了;但也可能DLL的作者想隐藏实现的某些细节)。

那么,除此之外,TLS在应用程序里有用吗?

欢迎大家讨论

作者: gg606   发布时间: 2011-12-21

常用的同步机制在多线程开发中会降低性能,某些情况下在用时要求严格的程序中可使用TLS代替同步机制,从而提高程序运行速度。具体可参考http://www.codeproject.com/KB/solution-center/Thread-Local-Storage.aspx

作者: fight_in_dl   发布时间: 2011-12-21

尽量少用TLS,多用局部变量

作者: sky101010ws   发布时间: 2011-12-21

多用简单的东西,少用复杂的东西
提高程序的可读性和可维护性
现在的编程不一定需要很高深的技术,主要还是团队的协作

作者: sky101010ws   发布时间: 2011-12-21

我就在维护原来的dll代码时用过。好像TLS这个设计初衷就是使C运行库能够基本不改代码就支持多线程。

作者: buyong   发布时间: 2011-12-21

热门下载

更多