ExpertiDict

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

mutex

/ˈmjuː.tɛks/substantivo

Trava de exclusão mútua (pthread_mutex_t) que garante que só uma thread por vez execute a região crítica protegida. É o jeito básico de evitar corrida de dados.

Onde usar

Surge quando duas threads mexem no mesmo contador ou lista. Em review se verifica que todo lock tem um unlock em todos os caminhos de saída, inclusive os de erro.

Em código

#include <pthread.h>
pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER;
long total;
void soma(long v) {
  pthread_mutex_lock(&m);
  total += v;
  pthread_mutex_unlock(&m);
}

Exemplos

Lock the mutex before touching the shared counter.

Trave o mutex antes de mexer no contador compartilhado.

We have a deadlock because the two threads lock the mutexes in opposite order.

Temos um deadlock porque as duas threads travam os mutexes em ordem oposta.

Cuidado

Dar return no meio da seção crítica sem destravar, ou travar dois mutexes em ordens diferentes em threads distintas, o que causa deadlock.

Sinônimos

trava, lock

Origem

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

Veja também

Todos os termos de C