好贷网好贷款

boost库中thread多线程详解3——细说lock_guard

发布时间:2016-12-4 1:49:16 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"boost库中thread多线程详解3——细说lock_guard",主要涉及到boost库中thread多线程详解3——细说lock_guard方面的内容,对于boost库中thread多线程详解3——细说lock_guard感兴趣的同学可以参考一下。

boost::lock_guard可以说是一种比boost::unique_lock轻量级的lock, 简单一些场景可以用它就行了。 看看它的源代码也很简单: [cpp] view plaincopyprint? template<typename Mutex>   class lock_guard   {   private:       Mutex& m;          explicit lock_guard(lock_guard&);       lock_guard& operator=(lock_guard&);   public:       explicit lock_guard(Mutex& m_):           m(m_)       {           m.lock();       }       lock_guard(Mutex& m_,adopt_lock_t):           m(m_)       {}       ~lock_guard()       {           m.unlock();       }   };         可以看到只有两个public方法,即构造和析构函数,也就是说,使用boost::lock_guard去guard一个mutex,必然是在boost::lock_guard的对象离开其作用域时unlock它所guard的mutex,不提供提前unlock的功能。       而boost::unique_lock则提供这个功能,除了像boost::lock_guard一样在离开作用域时unlock它guard的mutex外,boost::unique还提供unlock函数,使用者可以手动执行unlock。此外,unique_lock还可以设置超时。

上一篇:[ACM]Number Sequence
下一篇:IOS 百度社会化分享注意点

相关文章

相关评论