Durante uma aula prática de programação paralela,
alunos da rede estadual estavam desenvolvendo
um sistema com múltiplas threads. Em um dos
testes, o sistema travou completamente: uma
thread havia bloqueado um recurso e aguardava
outro que estava sendo usado por uma segunda
thread, que, por sua vez, aguardava a liberação do
primeiro recurso. Nenhuma das duas conseguia
continuar a execução, e o programa parou de
responder.
Essa situação em que dois ou mais processos
ficam indefinidamente bloqueados, cada um
esperando que o outro libere um recurso, é
denominada