0

各 Java オブジェクト (およびそのクラス) には、関連付けられたモニターがあります。pthread 用語では、Java モニターは再入可能ミューテックスと条件変数の組み合わせに相当します。

ロックのために、Win32 API は Mutex オブジェクト (再入可能ですが重量が大きい) とクリティカル セクション (再入不可ですが軽量) を提供します。また、セマフォやイベントなどの他の同期構造も提供しますが、条件変数の明示的な概念はありません。

JVM を作成している場合、これらの Win32 の概念を使用して Java モニターを実装するにはどうすればよいでしょうか?

4

2 に答える 2

2

Windows には SignalObjectAndWait() があり、モニターの条件変数の待機と同じように使用できます。イベント (つまりリセット) とミューテックスを使用してから、PulseEvent() を使用して、条件変数を通知するのと同じことを行うことができます。

于 2009-02-10T21:13:51.243 に答える
0

クラス ReentrantLock がどのように実装されているかを確認するには、 OpenJDKソースを参照することをお勧めします。

(自分で調べたわけではないので、正解はわかりません。)

util.concurrent ロックは、ネイティブ API を使用して実装されます。

于 2008-10-06T14:36:00.413 に答える