aumentar scoped_lock vs plain lock / unlock
Eu vou usarboost::mutex
deboost/thread/mutex.hpp
. Existem várias maneiras de bloquear / desbloquear mutex: comscoped_lock
, unique_lock
, lock_guard
funções de membro do mutex::lock()
e::unlock()
e funções não membroslock()
eunlock()
.
Eu percebi issoboost::scoped_mutex
é uma das formas mais populares de usar o mutex. Por que é preferível às funções de membro::lock()
e::unlock()
?
Particularmente, por que devo usar
{
boost::scoped_lock lock(mutex)
// ...
// read/output sharing memory.
// ...
}
ao invés de
mutex.lock()
// ...
// read/output sharing memory.
// ...
mutex.unlock()
éscoped_lock
melhor apenas por causa de algum ponto de vista de codificação de estilo ou é::lock()/::unlock()
não "fio seguro o suficiente"?