创建的用户定义线程是Native类型吗?

时间:2014-04-30 10:25:04

标签: java multithreading java-ee

我有一个关于线程的问题。当你使用Callable接口或Runnable接口在java中创建线程时,哪些线程被创建为本机或绿色,你是否可以控制它,或者是你使用的JVM和操作系统决定了这一点?

4 个答案:

答案 0 :(得分:3)

语言规范没有定义要使用的线程类型。实际的线程类型取决于JVM实现以及底层操作系统和硬件。

但是,如果您在常规计算硬件上使用HotSpot VM,则非常非常可能使用本机线程。

编辑:JVM确实有一个线程调度程序,但是AFAIK,它委托操作系统的实际调度。早期的JVM实现在VM本身进行了调度。应用程序的线程正在共享VM进程的资源。

答案 1 :(得分:0)

绿色线程已经过去,JVM仅适用于自1.3以来的本机线程

答案 2 :(得分:0)

在大多数JVM中,线程都是本机的,但是JRockit支持" thin"线程仍然不太老。在JRockit中,您可以选择-Xthinthreads和默认-Xnativethreads

答案 3 :(得分:-1)

Java线程是与任何其他Java对象一样的对象。线程是类java.lang.Thread的实例,或者是此类的子类的实例。除了作为对象之外,java线程还可以执行代码。

让我向你介绍一下......

绿色线程由虚拟机安排。

本机线程由操作系统调度。

  

绿色线程已经过去,JVM仅适用于本机线程   1.3使用操作系统线程库

创建和管理Java线程的Java虚拟机