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

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

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