Sincronização em "this" ou objeto privado em Java? [duplicado]
Duplicata Possível:
Evite sincronizado (isso) em Java?
Qual é a diferença entre os dois pedaços de código? Quais são as vantagens e desvantagens de cada um?
1)
public class Example {
private int value = 0;
public int getNextValue() {
synchronized (this) {
return value++;
}
}
}
2)
public class Example {
private final Object lock = new Object();
private int value = 0;
public int getNextValue() {
synchronized (lock) {
return value++;
}
}
}