2010-01-27 30 views

回答

1

是。引擎蓋下沒有內存變化或緩存。

+8

你正在做一個假設,即查找方法是不標準的所有實現有狀態的。當涉及到C++時,最好不要做出假設。 – JaredPar 2010-01-27 17:51:35

4

這是實現特定的,而不是由標準的保證。

+0

哪個實現不起作用? – Jay 2010-01-27 17:51:53

+0

我認爲sergiom在實踐中可能是正確的,但由於我找不到任何保證,我懷疑這不是我們可以依賴的。 – 2010-01-27 17:52:13

+0

@Jay:原則上,容器可以推遲某些清理任務,直到稍後訪問。僅僅因爲容器被作爲邏輯const來訪問並不能保證它不會在引擎蓋下以一種線程不安全的方式翻轉一些位。 – 2010-01-27 17:53:31

5

當前的C++標準無關,對線程的主題說了,所以並沒有解決這個問題。但是,您特定C++標準庫實現的文檔應該覆蓋它。

+3

從VC++(Visual Studio 2008)中,引用std容器:單個對象對於從多個線程讀取是線程安全的。例如,給定一個對象A,同時從線程1和線程2讀取A是安全的。 – Permaquid 2010-01-27 18:38:12

相關問題