boost::thread 线程锁

时间:2022-10-07 21:52:36

1.boost锁的概述:

  boost库中提供了mutex类与lock类,通过组合可以轻易的构建读写锁与互斥锁。

2.mutex对象类(主要有两种):

  1.boost::mutex(独占互斥类) --> 有lock和unlock方法

  2.boost::shared_mutex(共享互斥类) --> 有lock和unlock方法 And shared_lock和shared_unlock方法

3. lock模板类:

  1.boost::unique_lock<T>(独占锁) : unique_lock<T>中的 T 可以为mutex类中的 任意 一种; 自动调用lock和unlock方法

  2.boost::shared_lock<T>(共享锁) : shared_lock<T>中的 T 只能是shared_mutex类; 自动调用shared_lock和shared_unlock方法

4.递归式的互斥量:

  

  boost::mutex::scoped_lock

  boost::mutex io_mutex;

  void foo( )

  {

  {

   boost::mutex::scoped_lock lock( io_mutex );         /// 锁定

  } /// 解锁

  }

5.设置锁超时:

  boost::unique_lock<boost::timed_mutex> lk( io_mutex , std::chrono::milliseconds(3) ); // 超时3秒