しかし、私はなぜ "オブジェクトのロック"の "オブジェクトのモニタ" instendを使用するのか困惑していますか?
この文脈で使用されている用語「モニタ」を説明するリンクについてはulmangtの回答を参照してください。
なぜ「ロック」ではなく「モニタ」という用語を使用するのですか?まあ厳密に言えば、これらの用語は異なることを意味します...特に、本来はそれらが使用されることを意図した方法でそれらを使用する場合です。
「ロック」は、特定のロックプロパティを維持する取得および解放プリミティブを持つものです。例えば排他的使用またはシングルライター/マルチリーダー。
"モニタ"は、ある時点で特定のセクション(またはセクション)を1つのスレッドだけが実行できるようにするメカニズムです。これは、ロック(および条件が満たされた他のスレッドを待つか、スレッドに通知を送信する「条件変数」)を使用して実装できますが、単なるロック以上のものです。実際、Javaの場合、モニターが使用する実際のロックは直接アクセスできません。 (あなたはちょうどあなたがJavaのLock
インスタンスを持つことができますように...それを取得するから、他のスレッドを防ぐために、「Object.lockを()」と言うことはできません。)要するに
、人は知識をひけらかすことをした場合"モニタ"は実際には、Javaが提供しているものを特定するための「ロック」よりも優れた用語です。しかし、実際には、両方の用語はほぼ同じ意味で使用されています。
+1実際にあなたの質問に答える唯一の人物です:私たちは、ホアレが1974年に戻したものだから "モニター"と呼んでいます。 –