boost学习之boost::lock_guard与boost::unique_lock的区别

(1)boost::lock_guard没有unlock()功能

boost::mutex mutex;

void foo( )

{

    boost::lock_guard lock(mutex);

    process(data);

   ///没有unlock()功能,程序结束自动析构

};

(2)unique_lock允许设置超时,推迟锁定lock以及在对象销毁之前unlock。

boost::mutex mutex;

{

    boost::unique_lock lk(mutex);

    process( data );

    lk.unlock( );

    // do other thing

};

 

// 设置锁超时

{

  boost::unique_lock lk(mutex, std::chrono::milliseconds(3)); // 超时3秒

  if(lk)

    process( data );

};

 

你可能感兴趣的:(C++,boost)