关键字:thead、多线程、锁
lock_guard
boost::mutex mutex;
boost::lock_guard<boost::mutex> lock(mutex);
unique_lock
boost::mutex mutex;
boost::unique_lock<boost::mutex> lock(mutex);
- 如果只是为了保证数据同步,那么lock_guard完全够用;
- 如果除了同步,还需要使用condition进行阻塞时,那么就需要用unique_lock。
- boost还要一个boost::mutex::scoped_lock,这个是boost::unique_lock<boost::mutex>的typedef,在C++11中已经禁用。
参考:
boost::unique_lock vs boost::lock_guard
http://stackoverflow.com/questions/6731027/boostunique-lock-vs-boostlock-guard
本文详细介绍了Boost库中用于多线程编程的互斥锁(mutex)及其两种锁管理器——lock_guard和unique_lock。重点讨论了它们在数据同步和条件阻塞中的应用,并对比了两者之间的区别,为读者提供了在实际项目中选择合适锁管理策略的指导。

2209

被折叠的 条评论
为什么被折叠?



