Предполагая, что вы имеете в виду реализации, такие как:
class Singleton {
private static Singleton instance = new Singleton();
public static Singleton getInstance() {
return instance;
}
}
линия: private static Singleton instance = new Singleton();
оценивается во время загрузки класса (что означает, что если злоумышленник загружает этот несколько раз класса - несколько экземпляров будет создан!).
Класс (обычно) загружается только один раз, прежде чем он будет использоваться (либо путем вызова статического поля/метода, либо путем создания экземпляра). Этот механизм синхронизируется JVM:
Реализация виртуальной машины Java отвечает за заботясь о синхронизации и рекурсивной инициализации с помощью следующую процедуру ...
Источник: http://docs.oracle.com/javase/specs/jls/se7/html/jls-12.html#jls-12.4.2
Пожалуйста, добавьте больше деталей. На каком языке вы ссылаетесь? Предоставление фактического образца кода может помочь другим лучше понять проблему. – ALoopingIcon
Извините, и я использую java. –