一尘不染

Linux和GCC 4中的C ++新操作员线程安全性

linux

很快我将开始使用共享内存研究并行版本的网格细化算法。

该大学的一位教授指出,我们必须非常小心线程安全,因为编译器和stl都不知道线程。

我搜索了这个问题,答案取决于编译器(有些尝试是对线程 有所 了解的)和平台(如果编译器使用的系统调用是否是线程安全的)。

那么,在Linux中,gcc 4编译器会为新运算符生成线程安全代码吗?

如果不是,克服此 问题 的最佳方法是什么?也许将每个呼叫锁定到新接线员?


阅读 236

收藏
2020-06-02

共1个答案

一尘不染

您将很难看起来很难找到一个支持线程但没有线程安全的平台new。实际上,new(和malloc)的线程安全性是它这么慢的原因之一。

另一方面,如果您想要线程安全的STL,则可以考虑使用具有线程感知容器的Intel
TBB
(尽管并非所有对容器的操作都是线程安全的)。

2020-06-02