В дополнение к тому, что Бен Дум сказал о Java, это довольно стандартная практика в ColdFusion, особенно с процедурой инициализации приложения, в которой вы устанавливаете переменные приложения.
Не имея хотя бы одной блокировки, вы позволяете начальным попаданиям в ваше веб-приложение одновременно инициализировать переменные приложения. Это предполагает, что ваше приложение достаточно занято, чтобы гарантировать это. Опасность существует только в том случае, если ваше приложение занято во время первого запуска приложения.
Первая блокировка гарантирует, что только один запрос за раз инициализирует ваши переменные.
Вторая блокировка, встроенная в первую, проверяет, существует ли переменная, определенная в конце вашего кода инициализации, например application.started. Если он существует, его выгнали.
Шаблон двойной блокировки сохранил мой скин на загруженных сайтах, однако на ОЧЕНЬ загруженных сайтах очередь запросов на завершение начального попадания приложения может подниматься слишком высоко, слишком быстро и вызывать сбой сервера. Идея состоит в том, что запросы ожидают первого удара, который является медленным, затем второй разбивается на первый cflock и быстро отклоняется. С сотнями или тысячами запросов в очереди, растущих каждую миллисекунду, все они направляются к первому блоку cflock. Решение состоит в том, чтобы установить очень низкий тайм-аут для первого cflock, а не выбрасывать (или ловить и прятать) ошибку тайм-аута блокировки.
В качестве последнего примечания, это поведение, которое я описал, было объявлено устаревшим с методом onApplicationStart () ColdFusion 7 вашего Application.cfc. Если вы используете onApplicationStart (), то вам вообще не нужно блокировать процедуру инициализации приложения. Application.cfc уже хорошо заблокирован.
В заключение, да, двойная проверка блокировки работает в ColdFusion. Это полезно при некоторых обстоятельствах, но делайте это правильно. Я не знаю схемы того, почему это работает, в отличие от модели потоков Java, есть вероятность, что он вручную проверяет какую-то таблицу поиска на фоне вашего сервера ColdFusion.