我将使用boost::mutexfrom boost/thread/mutex.hpp。有几种方法可以锁定/解锁互斥锁:with scoped_lock, unique_lock, lock_guard, mutex 的成员函数::lock()and::unlock()和非成员函数lock()and unlock()。
我注意到,这boost::scoped_mutex是使用互斥锁的最流行的方式之一。为什么它比成员函数更::lock()可取::unlock()?
特别是,我为什么要使用
{
boost::scoped_lock lock(mutex)
// ...
// read/output sharing memory.
// ...
}
而不是
mutex.lock()
// ...
// read/output sharing memory.
// ...
mutex.unlock()
仅仅scoped_lock因为某些样式编码的观点而更好还是::lock()/::unlock()“线程足够安全”?