我将使用boost::mutex
from 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()
“线程足够安全”?