1. ホーム
  2. java

[解決済み] Javaでモニターって何?

2022-05-06 08:21:41

質問

Javaでの並行プログラミングでいうところのモニターとは何ですか?

すべてのオブジェクトはモニターに関連している」とありますが、どのような意味ですか?

特別なものなのでしょうか?

解決方法は?

モニターは、オブジェクトへの同時アクセスを制御するためのメカニズムです。

することができるようになります。

スレッド1

public void a()
{
    synchronized(someObject) {
        // do something (1)
    }
}

スレッド2

public void b()
{
    synchronized(someObject) {
        // do something else (2)
    }
}

これにより、スレッド 1 と 2 が同時にモニターされた (同期された) セクションにアクセスすることを防ぎます。一方が開始し、最初のものが終了する前にもう一方がその領域にアクセスするのをモニターが阻止します。

特別なオブジェクトではありません。クラス階層のルートに配置された同期機構です。 java.lang.Object .

もあります。 waitnotify メソッドで、異なるスレッド間の通信にオブジェクトのモニターを使用することもできます。