Java中的线程

12

Java线程和本地线程有什么区别?

4个回答

16

Java线程可以以符合规范的任何方式进行实现。规范不要求特定的实现。

实际上,几乎所有现代桌面和/或服务器JVM都将Java线程实现为本机线程。这意味着每个Java线程都有一个本地线程,操作系统像为C程序一样进行所有调度。

一些旧的JVM和可能一些适用于资源有限设备的JVM可能以比运行的Java线程数量更少(或可能是1)的方式实现线程。这些实现被称为“绿色线程”。在这种情况下,JVM本身负责任务切换和调度,而不是将该任务委托给操作系统。


有人能给我提供一个参考吗? - Ellen Spertus
@espertus 参考HotSpot JVM实现的源代码可以在http://openjdk.org找到。 - Victor Sorokin

5

当然,这取决于JVM的实现,但我认为它们是相同的。也就是说,在Java中,线程是通过本地线程实现的。您可以像使用本地线程一样使用Java线程执行各种操作。


0
Java线程和本地线程是完全不同的。本地线程是底层平台(操作系统)的一部分。
Java线程是Java语言支持并发的一个特性。Java规范控制Java线程的API和功能。在执行Java程序时,最终Java线程将被映射到本地线程。此外,Java线程不需要与本地线程一一映射。

0

Java线程(Thread类和Runnable接口)是内存共享应用程序中比本地线程更高级别的API。我推荐这本书《Java Threads》由Oaks和Wong撰写http://shop.oreilly.com/product/9780596007829.do。实现Runnable接口是一种常见的做法,但它取决于您的代码范围。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接