Olá, gostaria de saber se quando eu tenho um método sincronizado em um objeto, quando outra thread tenta acessar outro método desse objeto o mesmo é lockado?
Pergunto isso por que nesse artigo o autor diz que o objeto inteiro é sincronizado.
http://www.dsc.ufcg.edu.br/~jacques/cursos/map/html/threads/sincronizacao.html
Nesse caso se não for, como posso sincronizar o objeto inteiro para que quando uma thread estiver utilizando, outra espere o acesso ao mesmo?
Desde já agradeço a todos.
[quote=laudenpower]Olá, gostaria de saber se quando eu tenho um método sincronizado em um objeto, quando outra thread tenta acessar outro método desse objeto o mesmo é lockado?
Pergunto isso por que nesse artigo o autor diz que o objeto inteiro é sincronizado.
http://www.dsc.ufcg.edu.br/~jacques/cursos/map/html/threads/sincronizacao.html
Nesse caso se não for, como posso sincronizar o objeto inteiro para que quando uma thread estiver utilizando, outra espere o acesso ao mesmo?
Desde já agradeço a todos.[/quote]
Sim, um método sincronizado pega o lock no objeto inteiro (lembrando que os métodos wait e notify, por exemplo, são feitos em cima do objeto, não da thread). Esse lock só é liberado se a thread fizer uma chamada a wait(), por exemplo.
[]´s
Então nesse caso se uma thread acessa o objeto, enquanto ela estiver utilizando o método sincronizado, as demais threads deverão esperar até essa thread terminar o processamento? Nesse caso o lock só é utilizado no momento do acesso ao método sincronizado ou no acesso a qualquer método da do objeto (incluindo os não sincronizados?)
Desde já gostaria de agradecer a atenção e gostaria de me colocar a disposição para ajuda-lo no que estiver ao meu alcance 
Se o outro método for sincronizado, sim.
[quote=laudenpower]
Nesse caso se não for, como posso sincronizar o objeto inteiro para que quando uma thread estiver utilizando, outra espere o acesso ao mesmo?
Desde já agradeço a todos.[/quote]
Coloca synchronized em todos os metodos publicos do objetos.
Vale lembrar que o método sincronizado pede o lock em cima do objeto, e a thread espera enquanto não obtiver o lock. Se o método não for sincronizado, a thread não vai requerer o lock e vai executar normalmente.
[]´s
Desde já gostaria de agradecer a todos que ajudaram para que dessa forma eu possa encerrar a minha participação nesse tópico. Desde já muito obrigado 