Java дважды проверил блокировку
Я случайно наткнулся на статью, в которой недавно обсуждался шаблон блокировки с двойной проверкой в Java и его подводные камни, и теперь ямне интересно, если вариант того шаблона, который яЯ использую в течение многих лет, может возникнуть какие-либо проблемы.
Я просмотрел много постов и статей на эту тему и понял потенциальные проблемы с получением ссылки на частично построенный объект, и, насколько я могу судить, я несчитать моя реализация зависит от этих вопросов. Есть ли проблемы со следующей схемой?
И если нет, то почемут люди используют это? Я'я никогда не видел его рекомендованным ни в одном из обсуждений, которые явидел вокруг этого вопроса.
public class Test {
private static Test instance;
private static boolean initialized = false;
public static Test getInstance() {
if (!initialized) {
synchronized (Test.class) {
if (!initialized) {
instance = new Test();
initialized = true;
}
}
}
return instance;
}
}