Boa tarde,
Realizei o exercicio, mas ainda não consegui entender muito bem, o deadlock nesse caso. Poderiam me ajudar?
Boa tarde,
Realizei o exercicio, mas ainda não consegui entender muito bem, o deadlock nesse caso. Poderiam me ajudar?
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