boost實踐之互斥鎖

#include <mutex>

std::mutex socket_list_mu_;

socket_list_mu_.lock();

socket_list_mu_.unlock();

使用mutex是不安全的,當一個線程在解鎖之前異常退出了,那麼其它被阻塞的線程就無法繼續下去.


std::lock_guard<std::mutex> lock(socket_list_mu_);

使用lock_guard則相對安全,它是基於作用域的,能夠自解鎖,當該對象創建時,它會像socket_list_mu_.lock()一樣獲得互斥鎖,當生命週期結束時,它會自動析構(unlock),不會因爲某個線程異常退出而影響其他線程。


待續

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章