为什么在java本身中没有实现Object和Thread类的某些方法?

时间:2012-08-28 18:27:09

标签: java performance native

为什么选择这些方法

 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无法提供良好的性能?

3 个答案:

答案 0 :(得分:9)

如何用Java编写导致当前Thread休眠的代码?在某些时候,您需要委托本机代码,因为它是提供和控制线程的操作系统,而不是Java。

它可能会帮助您理解,在某个级别上,JVM本身是用本机代码编写的,因此它可以以操作系统和机器特定的方式与运行的每个操作系统进行通信。

答案 1 :(得分:0)

你的意思是什么?在Java API本身没有实现......

它是Java API的重要组成部分....我认为你不明白API意味着什么......

现在在Threads的情况下,它取决于运行Java程序的操作系统... 线程由不同的操作系统以不同的方式处理 ...例如{ {1}}在Window和Linux中有不同的时间实现....

答案 2 :(得分:0)

添加语言比添加到库中要困难得多。您可以轻松地向类添加方法,但添加关键字要困难得多。出于这个原因,Java只尝试将语言添加到绝对最小值,并且可以在库中完成的任何操作都可以这样做。

使用库而不是添加到语言的另一个原因是,在Java 5.0中使用sleep(),wait()或notify()这样的好主意通过添加并发性在Java 5.0中得到改进/替换图书馆,所以你现在不会使用这些方法,用你不再使用的语言制作元素会是一种浪费。