Dúvida com construção de synchronized?

3 respostas
P

Quais são as diferenças destes itens?

public metodo(Object a) { synchronized(a) { int x = 0; System.out.println(++x); } }

para isso:

public metodo(Object a) { synchronized(this) { int x = 0; System.out.println(++x); } }

para isso:

synchronized public metodo(Object a) { int x = 0; System.out.println(++x); }

3 Respostas

A

A thread que chamar metodo() vai bloquear :
1- o objeto a.
2- o objeto this (que é da classe que declara metodo())
3- igual a 2, mas não tenho certeza absoluta…

P

como assim bloquear o objeto???

A

Para outra thread não acessá-lo.

Criado 5 de junho de 2004
Ultima resposta 5 de jun. de 2004
Respostas 3
Participantes 2