Sobes.tech
Junior — Middle

O que se entende por estado de deadlock na programação multithread?

sobes.tech IA

Resposta da IA

O estado de deadlock na programação multithread ocorre quando dois ou mais threads bloqueiam-se mutuamente, esperando liberar recursos que estão ocupados pelo outro.

Exemplo:

  • O thread A adquire o recurso 1 e tenta obter o recurso 2.
  • O thread B adquire o recurso 2 e tenta obter o recurso 1.

Ambos os threads esperam um pelo outro e não podem continuar, o que leva ao congelamento do programa.

Para evitar deadlocks, usam-se:

  • Uma ordem clara na aquisição de recursos.
  • Timeouts ao esperar por bloqueios.
  • Uso de primitivas de sincronização de nível superior.