2013-03-08 64 views
0

雖然這種情況是不明確的boost::intrusive文檔的線程安全段落中提到,我想知道我是否可以考慮boost::intrusive::list::front()安全時:線程安全擔保的boost ::侵入

  • 有可能被一個作家名單
  • 上調用push_back()名單一直一個元素至少

列表是自動取消鏈接類型。我的直覺告訴我,爲什麼front()push_back()在這種情況下沒有任何理由。

回答

1

這絕對是一種競爭條件。

只要插入的對象不同,幾個具有對不同實例的讀取或寫入訪問權的線程就是安全的 。

的這裏關鍵是不同實例。您正在同時閱讀和寫入同一個實例,並且規範顯然不能保證它的安全性。

執行可能沒問題。我認爲這很直觀,可能是。但是,規範顯然並沒有對此做任何保證,並且你不得不承擔競爭條件,因爲它沒有保證。