C11 锁
1.mutex
頭文件是<mutex>,mutex是用來保證線程同步的,防止不同的線程同時操作同一個共享數據。
但是使用mutex是不安全的,當一個線程在解鎖之前異常退出了,那么其它被阻塞的線程就無法繼續下去。
用法:lock()
unlock
2.std::lock_guard
使用lock_guard則相對安全,它是基于作用域的,能夠自解鎖,當該對象創建時,它會像m.lock()一樣獲得互斥鎖,當生命周期結束時,它會自動析構(unlock),不會因為某個線程異常退出而影響其他線程
用法
#include <mutex>std::mutex kMutex;void function() {// 構造時自動加鎖std::lock_guard<std::mutex> (kMutex);// 離開局部作用域,析構函數自動完成解鎖功能 }參考
https://www.cnblogs.com/pjl1119/p/9715782.html
https://blog.svenhetin.com/std-lock_guard-jian-jie/
?
總結
- 上一篇: 测试日照强度的软件,日照分析软件Fast
- 下一篇: Python--day 3