モニターの相互排除がプロシージャ/メソッド レベルなのか、それともモニター レベルなのかを知りたいだけです。
つまり、最初のケースでは、モニターにアクセスする 2 つのスレッドが存在する可能性がありますが、それらは異なる手順で実行されます。2 番目のケースでは、2 つの異なるプロシージャが呼び出されたとしても、2 つのスレッドがモニターにアクセスすることはありません。
モニターレベルであると仮定すると、はるかに安全に思えます。ただし、モニターで 2 つの異なるスレッドが実行され、それぞれが異なる共有変数を変更している可能性があり、モニターがこれを許可しないという状況はありませんか? その場合、システムの同時実行性が低下しませんか? それとも、1 つではなく 2 つのモニターを作成する必要があるということでしょうか?
わかりました、哲学を終わらせた方がいいです:) よろしくお願いします