标签:class blog code color com string
1.boost里的互斥量类型由mutex表示。
代码示例:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | #include <iostream>#include <string>#include <vector>#include <boost/thread.hpp>#include <boost/thread/mutex.hpp>usingnamespacestd;usingnamespaceboost;intmain(){    mutex mu;    try    {        this_thread::sleep(posix_time::seconds(2));        mu.lock();//锁定cout对象        cout << "Some operations"<<endl;        mu.unlock();    }    catch(int)    {        mu.unlock();        return0;    }    } | 
二.上面的代码好像似曾相识,是的,在防止内存泄露的时候采用的和上面类似的处理方式,更加简洁的方式是智能指针,类似的我们需要用智能锁改写上面的代码scoped_lock智能锁。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | #include <iostream>#include <string>#include <vector>#include <boost/thread.hpp>#include <boost/thread/mutex.hpp>usingnamespacestd;usingnamespaceboost;template<typenameT>classbasic_atom:noncopyable{private:    T n;    typedefmutex 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(){returnn;}};intmain(){    return0;    } | 
boost之mutex scoped_lock,布布扣,bubuko.com
标签:class blog code color com string
原文地址:http://www.cnblogs.com/lidabo/p/3785156.html