第43章へようこそ。
今日のテーマは「デッドロック」です。
ここまで、複数のスレッドが安全に値を共有するための手段を見てきました。
MutexやRwLockは、ロックを取った流れだけに接触を許し、ほかの流れを待たせることで、同時の書き換えを防いだ。
ロックは、待たせることで安全を作る仕組みでした。
しかし、待たせることそのものが、新しい停止を生むことがあります。
複数の流れが、互いに相手の解放を待ち、どちらも進めなくなる。
この、互いを待ち続けて永遠に進まない状態を、デッドロックと呼びます。
デッドロックは、Rustがコンパイル時に防がない種類の問題です。
今日扱うのは、デッドロックがなぜ起こるのか、なぜ型システムがそれを防がないのか、
そして、取得の順序を統一することがなぜ回避になるのか、という思考法です。
感想
まだ感想はありません。最初の1件を書きましょう!
スクロール