Java モニターについて

スレッド周りの資料を読んでたらモニターロックっていう用語が頻繁に出てくるが、
いまいち意味がわからなかったので調べてみた。
http://msugai.fc2web.com/java/thread/lock.html

モニターというのは、スレッドのブロックと回復を行うオブジェクトです。
例えば、 JavaVM の外部からのデータの入力で、入力すべきデータが存在しなかったり、当該リソースがビジーだった場合は、そのメソッドは実行待機状態に入りますが、実行中の状態から退いた状態がブロック状態です。
ブロック状態を明示的に生み出すには wait() メソッドを用い、回復には notify() メソッドを用います。また、同期指定されたコードのロックを取得しようと試みているときもブロック状態になります。モニターと言うのは、このような方法でスレッドの排他制御を行うオブジェクトのことです。
簡単に言うと、 synchronized によって同期指定されたコードを持つオブジェクトがモニターです。

んー、ようするに、同期を取る際に、ロック対象となるオブジェクトがモニターってことかな。
インスタンスならthisになるだろうし、static synchronizedなら該当のクラスオブジェクトがモニターってことすな。
で、モニターロックってのはその名の通りモニターに対してロックをかけること。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です