Rel*_*lla 2 c++ multithreading boost mutex boost-thread
所以我们有功能a和类b.线程one调用a,没有其他线程可以调用a或b直到one将调用b.意思是线程one能够调用a而不是a...而且a,而且one没有调用b其他想要调用a或b等待的线程.有可能做这样的事情,boost::mutex怎么做?
互斥体不是问题; 这是锁.最简单的解决方案就是打电话mutex::lock()和mutex::unlock()手动,忘记了mutex::scoped_lock; 毕竟,你不希望锁是尊重范围.问题是通常的问题; 你可能想要在异常的情况下释放锁.一种解决方案是mutex::scoped_lock动态分配,并使用a std::auto_ptr
或a boost::shared_ptr来管理它.(奇怪的是,既不是
boost::mutex::scoped_lock也不可std::lock_guard移动,所以你需要动态分配才能转让所有权.)