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),不会因为某个线程异常退出而影响其他线程。


待续

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