0
A
回答
1
這取決於操作的種類。你只覆蓋存儲的值,還是你也插入/刪除元素?在前一種情況下,您只能鎖定容器的特定元素(例如,通過在每個元素中嵌入std::mutex
),而在後一種情況下,您需要在每次操作期間鎖定整個容器。
0
沒有通用的最佳途徑。您需要通過一個相應地鎖定/解鎖互斥鎖的函數來清理對同步結構的所有讀/寫調用。你可能有多個功能,但它們都應該在同一個共同的互斥體上運行。
它最好有一個存儲類,並保持映射和向量爲私有成員變量。並在該類中寫入轉發函數來鎖定/解鎖互斥鎖,並將讀/寫調用轉發給實際的映射或向量。那麼你有數量有限的門訪問實際結構。而且它會更容易管理。
您可以使用boost::mutex
作爲該類的成員變量。
相關問題
- 1. 使用互斥鎖從多個線程併發訪問向量
- 2. Pygame和線程:訪問全局變量時鎖定?
- 3. 從兩個線程訪問計數器
- 4. 鎖定/線程安全訪問XObject
- 5. 問題:訪問線程內的向量
- 6. 鎖訪問由線程
- 7. 訪問變量從一個線程
- 8. 從java中的兩個線程同時訪問變量
- 9. 鎖定爲並行線程的單一訪問變量在C#
- 10. 鎖定一個對象被多個線程訪問 - Objective-C
- 11. 鎖定在多個線程的變量
- 12. 兩個線程訪問同一個LinkedList
- 13. 主線程從第二個線程訪問變量
- 14. C#從一個線程訪問不同線程的變量
- 15. 這個非鎖定TryGetValue()字典訪問線程安全嗎?
- 16. 鎖定多個程序文件訪問
- 17. 從信號量解析圖像時鎖定主線程
- 18. 從一個DLL訪問一個向量
- 19. 鎖定和線程池
- 20. 同步線程和鎖定
- 21. C#線程和鎖定
- 22. 從線程訪問
- 23. 從線程訪問包變量
- 24. 從線程內訪問全局變量
- 25. Python線程和鎖定:死鎖
- 26. Boost ::線程互斥問題:嘗試鎖定,訪問衝突
- 27. 兩個線程程序防止死鎖
- 28. pthread互斥鎖兩個線程互鎖鎖定/解鎖是否有效?
- 29. 跨線程訪問變量和方法
- 30. 鎖定多個線程
[你有什麼嘗試?](http://mattgemmell.com/2008/12/08/what-have-you-tried/)另外,標準庫中有很多有用的類[線程支持] (http://en.cppreference.com/w/cpp/thread)。 –
這也有助於告訴你正在使用什麼系統和庫。 – drescherjm