Можем ли мы избежать использования 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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