ExpertiDict

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

deadlock

/ˈdɛdlɑk/substantivo

Situação em que duas ou mais threads ficam bloqueadas para sempre, cada uma esperando um lock que outra segura.

Onde usar

Aparece quando o sistema trava sem consumir CPU; o thread dump do jstack mostra 'Found one Java-level deadlock'.

Em código

synchronized (a) {        // thread 1
  synchronized (b) { }
}
synchronized (b) {        // thread 2
  synchronized (a) { }  // deadlock
}

Exemplos

The service froze because of a deadlock between two locks.

O serviço travou por causa de um deadlock entre dois locks.

Always acquire the locks in the same order.

Adquira os locks sempre na mesma ordem.

Cuidado

Não é lentidão: nada progride. A causa clássica é adquirir locks em ordens diferentes; fixe uma ordem global.

Sinônimos

impasse

Veja também

Todos os termos de Java