Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Небезопасные синглтоны. / 4 сообщений из 4, страница 1 из 1
08.08.2015, 00:34
    #39025402
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Небезопасные синглтоны.
Можете привести несколько примеров небезопасных синглтонов в многопоточной среде, которые на первый взгляд кажутся безопасными и объяснить почему они небезопасные.

Которые будут работать для малого числа потоков и будут ломаться на большом числе потоков
...
Рейтинг: 0 / 0
08.08.2015, 10:34
    #39025456
Mad_Head
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Небезопасные синглтоны.
questioner,

Я знаю только 1 вариант подходящий под описание.
class Foo {
private Helper helper = null;
public Helper getHelper() {
if (helper == null) {
synchronized(this) {
if (helper == null) {
helper = new Helper();
}
}
}
return helper;
}
}

Это на первый взгляд нормальный дабл чек синглтон. Но согласно джава мемори модел он может работать некорректно так как private Helper helper = null; не объявлен volatile. Это согласно спецификации, но я не уверен, что на современном процессоре удастся получить ошибочное поведение
...
Рейтинг: 0 / 0
08.08.2015, 20:07
    #39025584
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Небезопасные синглтоны.
Mad_Head,

Да, пример подходит)

надо ещё
...
Рейтинг: 0 / 0
09.08.2015, 19:05
    #39025798
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Небезопасные синглтоны.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Небезопасные синглтоны. / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]