我将使用boost::mutex从boost/thread/mutex.hpp.有几种方法来锁定/解锁互斥:有scoped_lock,unique_lock,lock_guard,互斥的成员函数::lock()和::unlock()和非成员函数lock()和unlock().
我注意到,这boost::scoped_mutex是使用互斥锁的最流行的方法之一.为什么是最好的成员函数::lock()和::unlock()?
特别是,我为什么要使用
{
boost::scoped_lock lock(mutex)
// ...
// read/output sharing memory.
// ...
}
Run Code Online (Sandbox Code Playgroud)
而不是
mutex.lock()
// ...
// read/output sharing memory.
// ...
mutex.unlock()
Run Code Online (Sandbox Code Playgroud)
是scoped_lock因为某些样式编码的观点还是::lock()/::unlock()"线程安全不够" 而更好?