关键字: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