0

java メソッド methodA()がネイティブ メソッドを呼び出してread()何かを読み取るとします。A()と同じスレッドで呼び出されread()ますか ? A()JVM の制御下にありread()ますが、システムによって制御されていませんか? 何らかのデータを取得した場合、データが orではなくread()によって要求されたことをどのように知ることができますか? JVM は によって返されたデータをどのように取得できますか?A()B()C()read()

4

1 に答える 1

1

通常、JVM ネイティブ呼び出しは、同じスレッドで JNI を介して実行されます。最新の JVM では、Java スレッドはネイティブ OS スレッドとして実装されます。Java メソッド A が read() を呼び出すと、マネージドからネイティブに切り替わる場合がありますが、通常の同期関数呼び出しと同じように動作します。

于 2013-07-10T18:53:39.197 に答える