Vc pode deixar o metodo sincronizado tbem mano. Mas a classe nunca
H
hipersoftPJ
Olá, Another-X,
Sincronização tem a ver com permissão de execução de um bloco de código (entre { e }), e não com dados. Essa permissão é dada ao possuidor do lock declarado para o bloco.
Todo objeto (veja bem, objeto e não classe) disponibiliza um lock, que pode ser disputado por QUALQUER bloco sincronizado sob uma mesma JVM.
Que objetos eu posso utilizar como lock?
instâncias usando new (inclusive o objeto trivial new Object());
O autoponteiro this;
O objeto Class de uma classe XXX, que pode ser obtido assim:
XXX.class
Class.forName(“XXX”)
xxx.getClass()
instâncias usando o método newIntance() da classe Class.
T
TomazLavieriPJ
“hipersoft”:
Olá, Another-X,
Sincronização tem a ver com permissão de execução de um bloco de código (entre { e }), e não com dados. Essa permissão é dada ao possuidor do lock declarado para o bloco.
Todo objeto (veja bem, objeto e não classe) disponibiliza um lock, que pode ser disputado por QUALQUER bloco sincronizado sob uma mesma JVM.
Que objetos eu posso utilizar como lock?
instâncias usando new (inclusive o objeto trivial new Object());
O autoponteiro this;
O objeto Class de uma classe XXX, que pode ser obtido assim:
XXX.class
Class.forName(“XXX”)
xxx.getClass()
instâncias usando o método newIntance() da classe Class.
ok mas keria saber o seguinte…
se eu sincronizo um Array… ele da loock em todos os objetos dentro da array??? se naum… como procedo o lock?? o q fica impedido de ser feito enquanto eu estou sincronizando a array… vlw
H
hipersoftPJ
Como eu disse, Another-X, não se pode “dar lock” em dados. Um array é uma estrutura (também é um objeto) que quarda referências a vários outros objetos. Tanto o “esqueleto”, quanto os seus objetos referidos podem ser acessados por diferentes threads, sincronizadas ou não. O que define a utilidade da sincronização é o esquema bolado pelo desenvolvedor para evitar a corrupção de dados por acesso simultâneo a alguma peça de dado.
M
matheusPJ
o Java Como Programar tem um exemplo de produtor/consumidor no capitulo de Threads bem legalzinho pra vc pegar isso ai, te posto outra hr o codigo q to meio atrasado agora!
:space:
T
TomazLavieriPJ
meu problema é esse… para q eu possa trabalhar sem corrupçao eu tenho q assegurar q a array esteja com lock… e q todos os seus objetos tenham LOCK para q eu possa assim… fazer um loop sem q haja mudança nos dados… para não haver erros…
queria só saber… c eu dou lock numa array… os objetos ficam impedidos de ter atualizações…