ダブルチェックのロックは安全か？
ソフトウェア工学では、ダブルチェック・ロッキング（「ダブルチェック・ロッキング最適化」とも呼ばれる）は、ロックを取得する前にロックの基準（「ロック・ヒント」）をテストすることで、ロック取得のオーバーヘッドを削減するために使用されるソフトウェア設計パターンである。ロックは、ロック基準のチェックでロックが必要であることが示された場合にのみ行われる。

このパターンは、いくつかの言語とハードウェアの組み合わせで実装された場合、安全でない可能性がある。時にはアンチパターンとみなされることもある。

一般的には、マルチスレッド環境で「遅延初期化」を実装するとき、特にシングルトンパターンの一部として、ロックのオーバーヘッドを減らすために使われます。遅延初期化は、その値が最初にアクセスされるまで初期化を回避します。
ダブルチェック・ロックは、状況によっては安全でないこともあり、アンチパターンとみなされることもある。しかし、安全な方法で実装することは可能です。