aumentar scoped_lock vs bloqueo / desbloqueo simple
Voy a usarboost::mutex
desdeboost/thread/mutex.hpp
. Hay varias formas de bloquear / desbloquear el mutex: conscoped_lock
, unique_lock
, lock_guard
, funciones miembro de mutex::lock()
y::unlock()
y funciones no miembroslock()
yunlock()
.
Me di cuenta queboost::scoped_mutex
Es una de las formas más populares de usar mutex. ¿Por qué es preferible a las funciones miembro?::lock()
y::unlock()
?
En particular, ¿por qué debería usar
{
boost::scoped_lock lock(mutex)
// ...
// read/output sharing memory.
// ...
}
más bien que
mutex.lock()
// ...
// read/output sharing memory.
// ...
mutex.unlock()
esscoped_lock
mejor solo debido a algún punto de vista de codificación de estilo o es::lock()/::unlock()
no es "hilo suficientemente seguro"?