Não. Significa que apenas 1 thread adentrará a região crítica sincronizada por meuObjeto. Qualquer outra thread que não delimite uma região crítica poderá usar o objeto normalmente.
Não. Significa que apenas 1 thread adentrará a região crítica sincronizada por meuObjeto. Qualquer outra thread que não delimite uma região crítica poderá usar o objeto normalmente.
Obrigado pela atenção.
Eu não entendi bem a explicação para a segunda pergunta.
O primeiro sincroniza todo o método ou seja coloca um bloqueio no método inteiro e faz com que somente uma Thread de cada vez possa acessar o metódo, o segundo sincroniza apenas um trecho do código, sendo que no método você pode ter vários passos antes e vários passos depois do synchronized… eu acredito que essa seja uma das formas de você não deixar a sua aplicação lenta…
e pelo que eu vi o
synchronized(meuObjeto){}
é parecido com o
synchronized(this){}
mas, no segundo você está sincronizando a instância e não um obj de uma instância…
O primeiro sincroniza todo o método ou seja coloca um bloqueio no método inteiro e faz com que somente uma Thread de cada vez possa acessar o metódo, o segundo sincroniza apenas um trecho do código, sendo que no método você pode ter vários passos antes e vários passos depois do synchronized… eu acredito que essa seja uma das formas de você não deixar a sua aplicação lenta…
e pelo que eu vi o
synchronized(meuObjeto){}
é parecido com o
synchronized(this){}
mas, no segundo você está sincronizando a instância e não um obj de uma instância…
No segundo exemplo da primeira pergunta eu estou sincronizando o metodo inteiro. Só queria saber se existia diferença entre sincronizar o metodo todo assim e sincronizar pela assinatura.
rmendes08
Se você sincronizar o método todo, usando this como monitor então não há diferença.
S
Sem_Nome
rmendes08:
No segundo exemplo da primeira pergunta eu estou sincronizando o metodo inteiro. Só queria saber se existia diferença entre sincronizar o metodo todo assim e sincronizar pela assinatura.
Se você sincronizar o método todo, usando this como monitor então não há diferença.
Entendo.
Em relação a segunda pergunta:
Quando alguma Thread chegar em
synchronized(meuObjeto) {
}
Caso exista alguma outra Thread em algun bloco sincronizado do meuObjeto, ele terá que esperar aquela Thread sair do synchronized para que ele possa entrar correto?
rmendes08
Sem_Nome:
Em relação a segunda pergunta:
Quando alguma Thread chegar em
synchronized(meuObjeto) {
}
Caso exista alguma outra Thread em algun bloco sincronizado do meuObjeto, ele terá que esperar aquela Thread sair do synchronized para que ele possa entrar correto?
Exatamente.
S
Sem_Nome
rmendes08:
Sem_Nome:
Em relação a segunda pergunta:
Quando alguma Thread chegar em
synchronized(meuObjeto) {
}
Caso exista alguma outra Thread em algun bloco sincronizado do meuObjeto, ele terá que esperar aquela Thread sair do synchronized para que ele possa entrar correto?