double-checked-locking
Из книги Head First design patterns, синглетный шаблон с двойной проверкой блокировки был реализован следующим образом: public class Singleton { private volatile static Singleton instance; private Singleton() {} public static Singleton getInstance() { if (instance == null) { ...
Checkstyle сообщает об этом коде как о "сломанной идиоме блокировки с двойной проверкой", но я не думаю, что на мой код действительно влияют проблемы с блокировкой с двойной проверкой. Предполагается, что код создает строку в базе данных, если строка с этим идентификатором не существует. Он работает в многоп...
Недавно я видел несколько проектов C#, которые используют шаблон двойной блокировки на Dictionary. Что-то вроде этого: private static readonly object _lock = new object(); private static volatile IDictionary<string, object> _cache = new Dictionary<string, object>(); public static object Cr...
Я читаю эту статью: объявление "дважды проверенный замок сломан" , оно говорит Блокировка с двойной проверкой широко цитируется и используется в качестве эффективного метода для реализации ленивой инициализации в многопоточной среде. К сожалению, он не будет надежно работать независимо от платформы...
Я хотел бы знать, чем отличаются эти состояния. Я не нашел никакой веб-страницы, разъясняющей это....
я наткнулся на это статьи обсуждая, почему парадигма блокировки двойной проверки нарушена в Java. Является ли парадигма допустимой для .NET (в частности, C#), если переменные объявлены volatile?...