是使用std :: deque还是std :: priority_queue线程安全?

gri*_*ich 11 c++ stl priority-queue thread-safety deque

可能重复:
C++ STL std :: set是否是线程安全的?
STL队列的线程安全性

我猜它不是,我只想确定.意思是2个线程使用相同的 std :: deque std::deque::push_backpush_front同时使用.

同样的问题std::priority_queue和功能std::priority_queue::pushstd::priority_queue::pop..

这些容器是否是线程安全的?或者我应该亲自编程它是线程安全的?

Tnx很多.

Dum*_*der 14

来自Scott Myer的有效STL项目12.对STL容器的螺纹安全性有现实的期望

多个读者是安全的.多个线程可以同时读取单个容器的内容,这将正常工作.当然,在阅读过程中不得有任何作家对集装箱采取行动.

对不同容器的多个编写者是安全的.多个线程可以同时写入不同的容器.

当谈到安全线程和STL容器时,您可以希望一个库实现允许一个容器上的多个读取器和单独容器上的多个写入器.您不能希望库消除对手动并发控制的需要,并且您根本不能依赖任何线程支持.

  • "希望"不是我喜欢看到的线程安全期望;) (7认同)