Мне нравится простота энергичного синглтона в java, и большинство статей о нем называют его создание потокобезопасным.
class Singleton {
public static final Singleton instance = new Singleton ();
private Singleton (){};
public static Singleton getInstance(){
return instance;
}
}
Однако я слышал некоторые утверждения, что его создание может не быть потокобезопасным в конце концов,Например, один источник заявил, что небезопасно, если используется более 1 загрузчик классов или домен приложения.
Гарантируется ли создание Eager Singleton JVM поточно-ориентированным, чтобы, например, 2 потока случайно не создали синглтон одновременно?
Редактировать:Требуется ли ключевое слово final для безопасности потока при создании объекта?Разве это не нить, если поле не является окончательным?