0

blockingcall(timeout)Javaには、Socket、Lockなどをサポートする多くのAPIがあります。これらはJavaでどのように実装されていますか?

私は見つけようとしましたが、それは見えないネイティブコードにつながります:(

スレッドを作成してタイムアウト時に割り込みをかけるような同様のアプローチが、Javaでネイティブレベルで使用されていますか?もしそうなら、同じことがJavaレベルで行われた可能性がありますが、なぜネイティブを使用するのですか?

4

1 に答える 1

1

it lead to native code which is not visibleこれは通常、Javaで実装されていないことを意味します。通常、OSによって実装されます。Linuxのソースは入手できますが、WindowsAFAIKは入手できません。

Javaスレッド割り込みを使用して、実際にスレッドを中断しません。すべてのブロッキング操作をウェイクアップしないフラグを設定するだけです。このメカニズムは、常に必要なものであるとは限らないため、使用されません。

于 2013-01-07T11:19:08.503 に答える