pthread不一定能够保证线程安全性,特别是在开启编译器优化的情况下,某些编译器优化很可能破坏pthread的线程安全性. 由于不同的编译器可能有不同的优化技术,所以pthread的实现与编译器有很大的关系:即使是在同一个OS平台上,不同编译器对pthread的实现也可能不一致. 有专家写论文证明,C++的线程机制不能仅仅依靠一个库(例如pthread)来实现,而是必须在语言层面作出修改,否则很难真正写出正确的多线程程序. 最新的C++标准C++11,定义了C++语言的内存模型,解决了C++多…