Ещё раз (надеюсь, последний) про double-checked locking
|
|
Пятница, 16 Января 2015 г. 13:09
+ в цитатник
Статей про double-checked locking на Хабре было столько, что казалось бы ещё одна — и Хабр лопнет. Вот только по Java неплохие публикации:
Реализация Singleton в JAVA,
Правильный Singleton в Java,
А как же всё-таки работает многопоточность? Часть II: memory ordering или вот замечательный пост от
TheShade (
слава web-archive!). В наши дни, наверно, каждый Java-разработчик слышал, что если используешь DCL, будь добр объявить переменную volatile. Найти сегодня в коде известных опенсорсных проектов DCL без volatile довольно трудно, но оказалось, что проблемы ещё не полностью решены. Поэтому я добавлю небольшую заметку по теме с примерами из реальных проектов.
Иногда складывается ощущение, что программисты не включают мозги и не пытаются понять, как что работает, а просто следуют простым и понятным правилам вроде «объяви переменную volatile, используй DCL, и всё будет хорошо». К сожалению, такой подход в программировании не всегда работает.
Читать дальше → http://habrahabr.ru/post/248041/
Метки:
Параллельное программирование
JAVA
double checked lock
dcl
инициализация
синглтон
singleton
-
Запись понравилась
-
0
Процитировали
-
0
Сохранили
-