デッドロック(Dead lock)とは
排他制御の欠陥で、2つ以上の
スレッドあるいは
プロセスなどの処理単位が互いの処理終了を待ち、結果としてプログラムが停止してしまうことを言う。英語では行き詰まりの意味がある(日本語でDead lockをDead rockと間違え、「暗礁に乗り上げる」ことを「
デッドロックに乗り上げる」ということがあるが、これは誤用)。
プログラムが複雑になっていくと原因不明の
バグとして発生しやすいため、
マルチスレッドのプログラムを書くときは注意が必要である。