Sobes.tech
Middle — Middle+

Como pode ocorrer um LiveLock num sistema e qual a sua diferença para um DeadLock?

sobes.tech IA

Resposta da IA

LiveLock ocorre quando vários threads ou processos reagem constantemente uns aos outros, alterando seu estado, mas nenhum consegue avançar. Ao contrário do DeadLock, onde os threads ficam bloqueados para sempre, no LiveLock eles estão ativos e continuam a trabalhar, mas não progridem.

Exemplo:

  • Dois threads tentam liberar recursos um para o outro, cedendo constantemente, mas nenhum captura o recurso definitivamente.

Diferenças:

  • DeadLock — bloqueio completo, os threads esperam indefinidamente.
  • LiveLock — os threads estão ativos, mas não conseguem realizar trabalho útil devido a mudanças constantes de estado.

Para prevenir o LiveLock, frequentemente usam-se atrasos aleatórios ou mudanças na estratégia de tentativas.