zoukankan      html  css  js  c++  java
  • boost之mutex scoped_lock

    1.boost里的互斥量类型由mutex表示。

    代码示例:

    #include <iostream>
    #include <string>
    #include <vector>
    #include <boost/thread.hpp>
    #include <boost/thread/mutex.hpp>
    using namespace std;
    using namespace boost;
    
    int main()
    {
    	mutex mu;
    	try
    	{
    		this_thread::sleep(posix_time::seconds(2));
    		mu.lock();//锁定cout对象
    		cout << "Some operations" <<endl;
    		mu.unlock();
    	}
    	catch(int)
    	{
    		mu.unlock();
    		return 0;
    	}
    	
    }
    

    二.上面的代码好像似曾相识,是的,在防止内存泄露的时候采用的和上面类似的处理方式,更加简洁的方式是智能指针,类似的我们需要用智能锁改写上面的代码scoped_lock智能锁。

    #include <iostream>
    #include <string>
    #include <vector>
    #include <boost/thread.hpp>
    #include <boost/thread/mutex.hpp>
    using namespace std;
    using namespace boost;
    
    
    template<typename T>
    class basic_atom:noncopyable
    {
    private:
    	T n;
    	typedef mutex mutex_t;
    	mutex_t mu;
    public:
    	basic_atom(T x = T()):n(x){}
    	T operator++()
    	{
    		mutex_t::scoped_lock lock(mu);
    		return ++n;
    	}
    	operator T(){return n;}
    };
    
    int main()
    {
    	return 0;
    	
    }
    
  • 相关阅读:
    css3-文本新增属性
    css3新增的伪类和伪元素
    git小记
    css3笔记
    jQuery(三)
    jQuery笔记(二)
    <转>HTML、CSS、font-family:中文字体的英文名称
    jQuery笔记
    DOM父节点、子节点例子
    DOM之节点类型加例子
  • 原文地址:https://www.cnblogs.com/liuweilinlin/p/3255846.html
Copyright © 2011-2022 走看看