简单的C++容器类,对于写入是线程安全的

con*_*lee 3 c++ parallel-processing thread-safety data-structures

我正在使用C++中的OpenMP编写一个多线程程序.有一次,我的程序分成许多线程,每个线程都需要将"作业"添加到某个容器中,以跟踪所有添加的作业.每个作业都可以是指向某个对象的指针.

基本上,我只需要同时从几个线程添加指向某个容器的指针.

有一个表现良好的简单解决方案吗?经过一些谷歌搜索,我发现STL容器不是线程安全的.一些stackoverflow线程解决了这个问题,但没有一个在简单的解决方案上形成共识.

Bil*_*eal 7

没有内置的方法来做到这一点.您可以简单地使用锁来保护现有容器类型之一.让每个线程使用它自己的容器,然后将结果最终组合在一起可能是一个更好的主意.