3
A
回答
3
- 容器數據結構幾乎總是需要同步(例如mutex),以防止race conditions。由於線程不受C++標準(C++ 0x前)支持,因此無法將這些線程添加到STL中。而且,對於不需要的情況,同步非常昂貴。只要手動執行此同步,STL容器可用於多線程應用程序。或者,您可以創建自己的線程安全容器,這些容器與STL算法(如this thread-safe circular queue)兼容。
- A
vector
包含一個連續的內存塊。所以,一旦找到指向這個內存塊的指針,它可以像普通數組一樣顯示。確切的細節取決於你使用的STL實現。
1
STL不是線程安全的,因爲很多人不需要線程安全,並且因爲它將線程上下文引入類中,否則不需要知道線程概念的任何內容。
您可以封裝進入容器,並提供自己的線程安全(或您的具體設計和實現施加其他限制。)
1
- 因爲還有單線程程序。
- 看一看here。
3
標準的C++容器不是線程安全的,因爲你很可能實際上想要的不僅僅是容器本身的更高級別的鎖定。換句話說,你可能希望兩個或更多的操作一起安全。
例如,如果您在運行多線程:
v.push_back(0);
v.push_back(1);
您不會得到交替的0和1的一個很好的載體,可以把它們混亂。你需要鎖定兩個命令才能得到你想要的。
相關問題
- 1. STL向量和線程安全
- 2. STL隊列的線程安全
- 3. STL是否爲空()線程安全?
- 4. 二維STL矢量線程安全嗎?
- 5. GDB調試問題的STL列表
- 6. C++ 11和較新的STL的std ::向量和線程安全
- 7. 問題有關地圖STL
- 8. 調試堆/ STL調試相當於GCC?
- 9. STL的bitset問題
- 10. 關於C++ STL型
- 11. 關於STL容器
- 12. STL list_iterator代碼問題(STL 4.0.0)
- 13. 線程相關的問題和調試
- 14. 關於RAII,STL流行音樂和PIMPL的基本問題
- 15. 關於調試生產環境的安全問題和風險
- 16. C++ STL copy_backward問題
- 17. STL ::地圖問題
- 18. STL練習問題
- 19. C++ STL向量迭代器vs索引訪問和線程安全
- 20. 指向STL容器線程安全的指針(隊列/ Deque)
- 21. 同一類型線程的STL容器類安全嗎?
- 22. gcc的STL空方法是線程安全嗎?
- 23. 關於C++ STL的查詢?
- 24. stl向量併發讀取線程安全嗎?
- 25. 關於線程安全和JPA的EntityManager
- 26. 在VS 2012中調試STL
- 27. 在STL中調試錯誤
- 28. 關於STL目錄::拼接
- 29. C++ STL unordered_map,線程安全的,每個線程訪問只有它自己設定的鍵和可編輯值
- 30. 多線程與STL容器