2017-05-04 82 views
1

我有2個線程,其中只有一個正在寫入我的矢量,而另一個正在讀取。我通過保留超過需要的方式確保沒有重新分配。然而,我有segfaults,我的程序不會終止。我的向量是唯一共享的,所以我的問題是一個std :: vector線程安全的這個目的?std :: vector線程對我來說是安全的嗎?

回答

1

保留是不夠的:插入時,重新分配不會發生,但end()size()的值仍會更改。這使得讀者和作者可以在end()size()(無論您是明確使用還是由矢量本身內部使用)的值上競爭。

相關問題