6.切勿对STL容器的线程安全性有不切实际的依赖
生活随笔
收集整理的這篇文章主要介紹了
6.切勿对STL容器的线程安全性有不切实际的依赖
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
STL自身對多線程的支持非常有限。對于STL,你能期望的是:
在需要修改STL容器或這調用STL算法時需要自己加鎖。
為了實現異常安全,最好不要手動加鎖解鎖,多使用RAII。
例如多使用std::lock_guard(),std::lock_guard是RAII模板類的簡單實現,功能簡單。
std::lock_guard 在構造函數中進行加鎖,析構函數中進行解鎖,即使遭遇異常,依舊可以保證鎖被釋放。
C++保證,如果有異常被拋出,局部對象會被析構。
為了縮小RAII類對象的作用域,可以通過使用“{ }”,使對象提前析構、釋放鎖、減小代碼被鎖區間。
? ?std::vector<int> datas;std::mutex oneMutex;...{std::lock_guard(one);... // 操作datas} 與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的6.切勿对STL容器的线程安全性有不切实际的依赖的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 5.慎重选择删除元素的方法
- 下一篇: 7.使用reserve避免不必要的内存分