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"?

Respuestas a la pregunta(2)

Su respuesta a la pregunta