[C++]boost::unique_lock与boost::lock_guard区别

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

猜你喜欢

转载自aigo.iteye.com/blog/2292212
今日推荐