Java线程和本地线程有什么区别?
Java线程可以以符合规范的任何方式进行实现。规范不要求特定的实现。
实际上,几乎所有现代桌面和/或服务器JVM都将Java线程实现为本机线程。这意味着每个Java线程都有一个本地线程,操作系统像为C程序一样进行所有调度。
一些旧的JVM和可能一些适用于资源有限设备的JVM可能以比运行的Java线程数量更少(或可能是1)的方式实现线程。这些实现被称为“绿色线程”。在这种情况下,JVM本身负责任务切换和调度,而不是将该任务委托给操作系统。
当然,这取决于JVM的实现,但我认为它们是相同的。也就是说,在Java中,线程是通过本地线程实现的。您可以像使用本地线程一样使用Java线程执行各种操作。
Java线程(Thread类和Runnable接口)是内存共享应用程序中比本地线程更高级别的API。我推荐这本书《Java Threads》由Oaks和Wong撰写http://shop.oreilly.com/product/9780596007829.do。实现Runnable接口是一种常见的做法,但它取决于您的代码范围。