Skip to content
EntityQ2712542· pop 9· linked from 105 articles

Double checked locking

Sign in to save

Also known as double-checked locking optimization

design pattern only locking if the locking criterion check indicates that locking is required

Wikidata facts

Show 2 more facts
Sources (3)

via Wikidata · CC0

Article · Русский

Блокировка с двойной проверкой (англ. Double checked locking) — параллельный шаблон проектирования, предназначающийся для уменьшения накладных расходов, связанных с получением блокировки. Сначала проверяется условие блокировки без какой-либо синхронизации; поток делает попытку получить блокировку, только если результат проверки говорит о том, что получение блокировки необходимо. На некоторых языках и/или на некоторых машинах невозможно безопасно реализовать данный шаблон. Поэтому иногда его называют анти-паттерном. Такие особенности привели к появлению отношения строгого порядка «happens before» в Java Memory Model и C++ Memory Model. Обычно он используется для уменьшения накладных расходов при реализации ленивой инициализации в многопоточных программах, например в составе шаблона проектирования Одиночка. При ленивой инициализации переменной, инициализация откладывается до тех пор, пока значение переменной не понадобится при вычислениях.

Abstract from DBpedia / Wikipedia · CC BY-SA

Available in 9 languages

via Wikidata sitelinks · CC0