Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
2
respostas

Dúvida no DeadLock

Boa tarde,

Realizei o exercicio, mas ainda não consegui entender muito bem, o deadlock nesse caso. Poderiam me ajudar?

2 respostas
solução!

Oi Thiago,

No exemplo, temos duas threads que precisam consumir os mesmos arquivos.

A thread1 vai lá e bloqueia o acesso ao arquivo1 e fica esperando um pouco.

Neste meio tempo, a thread2 bloqueia o acesso ao arquivo2 e também fica esperando um pouco.

Quando a thread1 tenta acessar o arquivo2, este está bloqueado pela thread2 por conta do synchronized, onde somente um pode acessar aquele recurso por vez.

A mesma coisa acontece quando a thread2 tenta acessar o arquivo1.

Então temos as duas threads esperando que uma libere o recurso para a outra mas nenhuma libera portanto tempo o deadlock.

Ficou mais claro?

Abraço!

Oi Joviane

Entendi!! :)

Muito obrigado