java singleton implementations

https://habrahabr.ru/post/129494/

для объектным ссылок volatile можно не писать. я прав?
Например, когда мы в многопоточном приложении используем паттерн Синглтон в котором применяем синхронизацию и хотим чтобы синхронизация осуществлялась только один раз при инициализации объекта, а не каждый раз, когда мы вызываем getInstance(), тогда модификатора volatile используем для объектной ссылки:
public class Singleton {
    private static volatile Singleton instance;
    private Singleton(){
    }
    public static Singleton getInstance() {
        if (instance == null) {
            synchronized(Singleton.class) {
                if (instance == null)
                    instance = new Singleton();
            }
        }
        return instance;
    }
}

volatile это сурово

DCL https://web.archive.org/web/20121108114236/http://habrahabr.ru/post/143390/



Популярные сообщения из этого блога

установка nginx + PHP5 + phpDaemon и настройка виртуальных хостов на nginx на Ubuntu 13.10

сказ о том, как я kafka и Spring поднимал и тестил

ubuntu 12.04 LTS install apache2.4 and php 5.6 and setup vhost