什么是Thread Safe?
Thread-safety(线程安全)是指代码被多个线程同时执行的时候仍然正常工作。尤其是要满足当多个线程都需要访问同一共享数据空间的时候,只有一个线程能被满足。
多线程执行的时候是处在一个共享地址空间,每个线程都可以访问其他线程的内存空间。为了使程序符合预定的执行的逻辑顺序,提出了线程安全的概念,符合线程安全标准的代码可以更好地得到控制、预测,不至于陷入后期Bug调试而无从下手的尴尬境地。
在实际中要判定一段代码是线程安全的会比较困难,而往往采用相反的策略:如何会导致线程不安全?下面列出了常见的一部分。
- 访问了全局变量或使用了堆(尤其没有自动回收的时候)。
- 分配/释放全局限制的资源,比如文件,子进程。
- 通过指针等类似的间接访问方式。
- 仅仅使用栈中的局部变量
- 仅访问输入的参数(实际就是在栈中)
- 仅调用满足上面两条的代码(或函数)
判定是困难的,但可以在局部范围内完全肯定(或否定)一个命题。强弱的区别。
0 Comments:
Post a Comment
<< Home