簡體   English   中英

如果迭代器未因插入而無效,則使用std :: find和C :: insert()線程安全

[英]Is using std::find and C::insert() thread safe if iterators are not invalidated by insert

假設我有一個容器C,其C的迭代器在C.insert()時沒有失效,是否可以在執行並發insert()時安全地對容器執行std :: find()? 也就是說,是否可以保證找到匹配的元素或C :: end(),而忽略了插入的元素可能匹配但std :: find()給我C :: end()的事實?

不會。盡管迭代器不會因您的變異操作而無效,但它仍然是變異操作,並且沒有定義任何標准容器可以安全地在一個線程中進行讀取而在另一個線程中進行變異操作。 請記住,容器仍然存在“內部情況”,各種內部狀態都可能與這兩種操作有關。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM