ExpertiDict

C++ · Intermediário · Inglês · Técnico

mutex

ˈmjuː.tɛkssubstantivo

Objeto de exclusão mútua que garante que só uma thread por vez execute uma seção crítica. O std::mutex oferece lock e unlock, mas costuma ser usado via guard.

Onde usar

Protege dados compartilhados entre threads, como um contador ou uma fila. Esquecer de travar em algum acesso gera data race, e travar em ordens diferentes gera deadlock.

Em código

std::mutex m;
int total = 0;
void somar(int x) {
  m.lock();
  total += x;
  m.unlock();  // prefira lock_guard
}

Exemplos

Guard the shared counter with a mutex.

Proteja o contador compartilhado com um mutex.

Both threads lock the mutexes in different orders, that's a deadlock.

As duas threads travam os mutexes em ordens diferentes, isso é deadlock.

Cuidado

Evite lock e unlock manuais: uma exceção entre os dois deixa o mutex travado para sempre.

Sinônimos

trava de exclusão mútua

Origem

Contração de mutual exclusion, exclusão mútua.

Veja também

Todos os termos de C++