标签: c++ multithreading
我有两个主题,其中只有一个是在我的向量中写入而另一个只是在阅读。我通过预留超过需要的数量来确保没有重新分配。然而,我有段错误,我的程序没有终止。我的向量是唯一共享的东西,所以我的问题是为此目的的std :: vector线程安全吗?
答案 0 :(得分:1)
保留是不够的:当您插入时,重新分配不会发生,但end()和size()的值仍然会发生变化。这使得读者和作者可以竞争end()或size()的值(无论是由您明确使用,还是由向量本身在内部使用)。
end()
size()