【モニタ】
モニタ(同期機構) とは?
最終更新:
💡 同じ鍵で共有データを守り、条件が整うまで待つ
共有データへの排他制御と、必要な状態になるまで待つ条件同期を組み合わせる並行プログラミングの仕組み。同じモニタを使う処理を保護し、待機中はロックを放して別のスレッドが状態を変えられるようにする。
📌 このページのポイント
モニタって、画面のモニターとは違うの?
ここではスレッド同士の待ち合わせの仕組みだよ。同じモニタのロックを取って共有データを操作し、必要な条件が整うまで待つ機能も組み合わせるんだ。
ミューテックスとどう違うの?
待っている人が鍵を持ったままだと、書き込めないよね?
Javaのsynchronizedだけで、共有データは全部安全になる?
notifyで起こせば、すぐ続きが動く?
もっと詳しく知りたい人へ
モニタを使えば、デッドロックも防げる?
Javaのモニタはデッドロックを自動で防ぎません。複数のロックを取る順番や、条件待ちの設計を確認する必要があります。ここで扱うJavaのオブジェクトのモニタを、離れたマシン間の待ち合わせへそのまま使えるわけでもありません。
まとめ:ざっくりこれだけ覚えればOK!
「モニタ」って出てきたら「排他制御と条件待ちを組み合わせる仕組み」と思えばだいたいOK!
📖 おまけ:英語の意味
「Monitor」 = 監視・管理するもの
💬 ここでは共有状態へのアクセスと待ち合わせを管理するスレッド間の待ち合わせの概念だよ。画面表示装置を指すモニターとは文脈が違うんだ