很快我将开始使用共享内存研究并行版本的网格细化算法。
该大学的一位教授指出,我们必须非常小心线程安全,因为编译器和stl都不知道线程。
我搜索了这个问题,答案取决于编译器(有些尝试是对线程 有所 了解的)和平台(如果编译器使用的系统调用是否是线程安全的)。
那么,在Linux中,gcc 4编译器会为新运算符生成线程安全代码吗?
如果不是,克服此 问题 的最佳方法是什么?也许将每个呼叫锁定到新接线员?
您将很难看起来很难找到一个支持线程但没有线程安全的平台new。实际上,new(和malloc)的线程安全性是它这么慢的原因之一。
new
malloc
另一方面,如果您想要线程安全的STL,则可以考虑使用具有线程感知容器的Intel TBB(尽管并非所有对容器的操作都是线程安全的)。