当前位置: 首页 > 面试题库 >

Java中的绿色线程和本机线程

张晔
2023-03-14
问题内容
  • 绿色线程和本机线程有什么区别?
  • 为什么将其命名为绿色和原生?

我是编程世界的新手。我喜欢学习Java。在经历Java线程面试问题时,我发现了这一点。我听说过线程,但是没有听说过这些绿色线程和本地线程。我对绿色线程和本机线程感到困惑,但不清楚。

在这种情况下,线程被称为绿色线程还是本地线程?(我的意思是在编程中)


问题答案:

绿色线程和本机线程有什么区别?

绿色线程由虚拟机调度。

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

为什么将其命名为绿色和原生?

“绿色”是较早的JVM线程项目的代号。它是库的名称,它在Java
1.1中
提供了VM丢弃的线程

之所以调用本机线程是因为它们属于本机平台。

我们怎么知道创建的线程是本地线程还是绿色线程?

绿色线程已成为过去,JVM从1.3开始仅与本机线程一起使用

“绿色线程”是指Java虚拟机本身在一个操作系统进程中创建,管理和上下文切换所有Java线程的模型。没有使用操作系统线程库。

“本机线程”是指Java虚拟机使用操作系统线程库(在UnixWare上名为libthread)创建和管理Java线程,并且每个Java线程都映射到一个线程库线程。



 类似资料:
  • 问题内容: 我想了解这类线程提供的优势。 在哪些环境中,绿色线程比非绿色线程更好?有人说绿色线程更适合多核处理器。 任何预期的行为问题。 问题答案: 绿色线程是“用户级线程”。它们是由“普通”用户级进程而不是内核调度的。因此,它们可用于在不提供该功能的平台上模拟多线程。 特别是在Java上下文中,绿色线程已成为过去。请参见《JDK 1.1 for Solaris开发人员指南》。(这是关于Solar

  • 问题内容: 我知道jvm本身就是将Java可执行文件的字节码转换为本地机器代码的应用程序,但是当使用本地线程时,我有一些我似乎无法回答的问题。 是否每个线程都会创建自己的jvm实例来处理其特定执行? 如果不是,那么jvm是否必须有某种方式来调度它接下来将处理的线程,如果是的话,由于一次只能运行一个线程,这是否会使java的多线程性质变得没有用? 问题答案: 是否每个线程都创建自己的JVM实例以处理

  • 问题内容: 我想了解此类线程提供的优势。 在哪些环境中,绿色线程比非绿色线程更好?有人说绿色线程更适合多核处理器。 任何预期的行为问题。 问题答案: 维基百科文章“绿色线程”对此进行了很好的解释。 绿色线程是“用户级线程”。它们是由“普通”用户级进程而不是内核调度的。因此,它们可用于在不提供该功能的平台上模拟多线程。 特别是在Java上下文中,绿色线程已成为过去。请参见《JDK 1.1 for S

  • 我有一个Android应用程序,它由一些本机线程(未连接到JVM)组成,需要能够调用Java对象的方法。 我打算这样做的方式是创建一个JNI函数,我从相关的Java对象调用它,它允许我在静态本机数据结构中获取和缓存所需的java对象方法ID、JNIEnv和对象引用,以便我的本机线程可以(线程安全地)访问所需的方法(例如,使用(*env)- 我不相信这种方法会起作用,因为我读到JNIEnv指针不能在

  • 问题内容: 如何区分正在运行的Java线程和本机线程? 在Linux中,每个子进程都有一个父进程,他们说0是所有进程的父进程,所有分叉的Java线程中都会有一个父线程吗? 我如何知道哪个Java线程与OS线程相关(如果Java线程派生了本机进程线程)。 Java线程和OS线程有任何命名约定吗? 可以从另一个Java代码中挂起或杀死正在运行的Java线程吗? 问题答案: 在Linux上,Java线程

  • 问题内容: 假设我有一个利用该框架的应用程序 当我在调试器中运行此应用程序时,将使用以下(默认)名称创建一个线程:。如你所见,这并不是非常有用,而且据我所知,该框架没有提供一种简便的方法来命名已创建的线程或线程池。 那么,如何为线程/线程池提供名称呢?例如,。 问题答案: 你可以提供一个到。工厂将负责创建线程,并将能够为其命名。 引用Javadoc: 创建新线程 使用创建新线程。如果没有另外指定,