pthread的线程安全性

      pthread不一定能够保证线程安全性,特别是在开启编译器优化的情况下,某些编译器优化很可能破坏pthread的线程安全性。

      由于不同的编译器可能有不同的优化技术,所以pthread的实现与编译器有很大的关系;即使是在同一个OS平台上,不同编译器对pthread的实现也可能不一致。

      有专家写论文证明,C++的线程机制不能仅仅依靠一个库(例如pthread)来实现,而是必须在语言层面作出修改,否则很难真正写出正确的多线程程序。

      最新的C++标准C++11,定义了C++语言的内存模型,解决了C++多线程实现的问题。

      下面是一些链接,可供参考:

      http://blog.csdn.net/pongba/article/details/1659952

      http://hi.baidu.com/lkqye/item/253fc4f6abc6dbb531c19977

      http://stackoverflow.com/questions/4476446/can-a-c-c-compiler-legally-cache-a-variable-in-a-register-across-a-pthread-lib

      http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.90.2412&rep=rep1&type=pdf

posted on 2013-12-31 14:57  frydsh  阅读(502)  评论(0编辑  收藏  举报

导航