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容器
- 10. 線程相關的問題和調試
- 11. STL list_iterator代碼問題(STL 4.0.0)
- 12. 關於RAII,STL流行音樂和PIMPL的基本問題
- 13. STL ::地圖問題
- 14. STL練習問題
- 15. gcc的STL空方法是線程安全嗎?
- 16. 在STL中調試錯誤
- 17. 關於線程安全
- 18. 關於線程安全
- 19. 多線程與STL容器
- 20. 是在boost還是stl線程安全的容器類似列表和unordered_maps?
- 21. 關於C++模板語法(STL庫源代碼)的問題
- 22. Linux上STL的安全版本
- 23. 關於調試,多線程的面試問題
- 24. 調試器安全問題
- 25. 關於django線程安全性的問題
- 26. STL列表迭代問題
- 27. STL容器內存問題
- 28. STL向量比較問題
- 29. 又一個STL樹問題
- 30. C++ STL問題:分配器