La parola chiave synchronize deve essere applicata a ciascun metodo di una classe che implementa il modello singleton come questo?Sincronizzazione Java in modalità singleton
public class Singleton {
private Singleton(){}
public synchronized static Singleton getInstance()
{
if(instance == null)
instance = new Singleton();
return instance;
}
public void DoA(){
}
}
Poiché Singoletti non esporre un costruttore pubblico e il metodo getInstance() è sincronizzato, uno non necessità di sincronizzare metodo DOA e altri metodi pubblici esposte dalla classe Singleton.
Questo ragionamento è corretto?
En sychronization generale dipende se si accede a dati condivisi nel metodo. – PeterMmm
[Questo dovrebbe rispondere alla tua domanda] (http://stackoverflow.com/questions/777849/proper-usage-of-synchronized-singleton) – user1406177
Io non la penso così, se getInstance è sincronizzato. ciò non significa che DoA sia sincronizzato. pure. –