【发布时间】:2015-02-04 09:47:53
【问题描述】:
为什么 isAlive() 方法在 Thread.java 中被声明为原生?哪个类实现了这个?我知道本机方法是在 Java 之外实现的。实现这一点的类是通过加载相应的库来加载的。但我很想知道哪个类实现了isAlive() 方法?为什么它被宣布为原生?
【问题讨论】:
-
线程是操作系统的一部分,实际上是由操作系统实现的(假设你有本地线程)因此当你想要访问这个底层资源时,需要进行本地调用。跨度>
-
我会这样,因为 JVM 没有实现它自己的调度程序,它使用本机操作系统线程。所以这个方法只是一些操作系统内核系统调用的包装器。
-
投票重新打开,因为这不是完全重复,这是一个特定的问题,可以合理地回答 .
-
“实现这些的类是通过加载各自的库来加载的。但是我很想知道哪个类实现了 isAlive() 方法?”本机方法不需要由类实现。它们是本地实现的 - 通常用 C 或 C++ 实现。你到底在问什么?
-
你的问题体现的不是一个,而是两个矛盾。如果它是本机的,则根本不是由类实现的。如果它是在“Java 之外”实现的,那么它就不会在 Java 类中实现。
标签: java multithreading