Можем ли мы избежать использования Volatile в шаблоне Singleton, синхронизировав метод getInstance() в Java?JAVA

Программисты JAVA общаются здесь
Anonymous
Можем ли мы избежать использования Volatile в шаблоне Singleton, синхронизировав метод getInstance() в Java?

Сообщение Anonymous »

В большинстве случаев это реализация шаблона проектирования Singleton.
Он использует ключевое слово Volativ, чтобы предотвратить проблему создания частичного объекта (устанавливает, что происходит -перед связью между чтением и записью в экземпляр).

Код: Выделить всё

public class Singleton {
private volatile static Singleton instance;
private Singleton() {}
public static Singleton getInstance() {
if (instance == null) {
synchronized (Singleton.class) {
if (instance == null) {
instance = new Singleton();
}
}
}
return instance;
}
}
Мне интересно, сможем ли мы избежать использования Volatible, синхронизировав весь метод getInstance()? Если это не сработает, как будет отличаться выполнение обоих случаев?

Подробнее здесь: https://stackoverflow.com/questions/786 ... etinstance

Вернуться в «JAVA»