2012-02-09 33 views
1

モニター内の相互排他がプロシージャー/メソッド・レベルにあるのか、それともモニター・レベルにあるのかを知りたいだけです。モニターと相互排除

最初のケースでは、2つのスレッドがモニタにアクセスしている可能性がありますが、別の手順で実行されていることを意味します。 2つ目のケースでは、2つの異なるプロシージャが呼び出されても、モニタにアクセスするスレッドは2つありません。

モニターレベルであるとすると、はるかに安全と思われます。しかし、が異なる共有変数を変更するモニターに2つの異なるスレッドを実行している可能性がありますが、モニターはこれを実行できません。これが当てはまる場合、システムの並行性が低下しないでしょうか?または、2台のモニタの代わりに作成する必要がありますか?

[OK]を、私はより良い仕上げphilosophizing :)おかげで、事前に

答えて

0

モニターのロックは、呼び出し元のメソッドの完全に独立しています。
そうでない場合、2つの異なるメソッドが同時に実行されるのを防ぐことは非常に困難でした。

そうしたくない場合は、複数のモニタを使用してください。

0

モニタ操作のメカニズムは、スレッドまたはプロセスのシリアル化です。 モニターは、同時性の状況で相互排除を保証するスキルです。

関連する問題