2

なぜこれらの方法

 java.lang.Thread.currentThread(),
 java.lang.Thread.sleep(),

 java.lang.Object.notify(),

 java.lang.Object.wait()

 of Thread & Object class are not implemented in java API's itself?

C/C++プログラミング言語の一部であるネイティブメソッドを作成する必要があったのはなぜですか?

その背後にリージョンがありますか、または Java は良好なパフォーマンスを発揮できませんか?

4

3 に答える 3

9

現在のスレッドをスリープ状態にするコードを Java でどのように記述しますか? スレッドを提供および制御するのは Java ではなく OS であるため、ある時点でネイティブ コードに委譲する必要があります。

特定のレベルでは、JVM 自体がネイティブ コードで記述されているため、OS およびマシン固有の方法で実行される各 OS と通信できることを理解するのに役立つ場合があります。

于 2012-08-28T18:30:29.237 に答える
0

Java API自体に実装されていないとはどういう意味ですか......

それはJava APIの大部分です.... APIの意味を理解していなかったと思います....

の場合Threads、Java プログラムが実行されている OS に依存します...スレッドは、さまざまな方法でさまざまな OS によって処理されます...たとえばsleep()、Window と Linux では異なる時間の実装があります....

于 2012-08-28T18:32:45.510 に答える
0

言語への追加は、ライブラリへの追加よりもはるかに困難です。クラスにメソッドを簡単に追加できますが、キーワードを追加するのははるかに困難です。このため、Java は言語に最小限の追加のみを試み、ライブラリで実行できることはすべてそのように実行されます。

言語に追加するのではなくライブラリを使用するもう 1 つの理由は、Java 1.0 で sleep()、wait()、または notify() を使用するなどの良いアイデアのように思われるものが、Java 5.0 で同時実行ライブラリを追加することによって改善/置き換えられたためです。最近はそれらのメソッドを使用しませんし、使用しなくなった言語で要素を作成するのはもったいないことです。

于 2012-08-28T19:48:40.387 に答える