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

发布时间:2017-3-30 1:10:47 编辑: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 百度社会化分享注意点

相关文章

相关评论

本站评论功能暂时取消,后续此功能例行通知。

一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!

二、互相尊重,对自己的言论和行为负责。

好贷网好贷款