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

21
  • 绿色线程和本地线程有什么区别?
  • 为什么它被称为绿色和本地线程?

我刚进入编程世界。我喜欢学习Java。在阅读Java线程面试题时,我发现了这个问题。我听说过线程,但没有听说过这些绿色和本地线程。 我搜索了关于绿色和本地线程的信息,但没有清晰的想法。

在哪种情况下,线程被认为是绿色或本地线程?(我指在编程中)


3
谷歌并非唯一解答:http://en.wikipedia.org/wiki/Green_threads。 - giorashc
1
这是链接:http://www.jguru.com/faq/view.jsp?EID=143462 - giorashc
@giorashc 我们如何知道创建的线程是本地线程还是绿色线程? - Rachel
1个回答

29
以下是翻译内容:

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

绿色线程由虚拟机安排调度。

本地线程由操作系统安排调度。

为什么它被称为绿色和本地线程?

"Green" 是早期 JVM 线程项目代号。它是一个库的名称,提供了在 Java 1.1 中由 VM 调度的线程。

本地线程之所以被称为本地线程,是因为它们属于本地平台。

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

绿色线程已经过时,自从 1.3 版本开始,JVM 只使用本地线程。

“绿色线程”是指一种模型,在该模型中,Java虚拟机本身创建、管理和切换一个操作系统进程内的所有Java线程。不使用操作系统线程库。
“本地线程”是指一种模型,在该模型中,Java虚拟机使用操作系统线程库(在UnixWare上称为libthread)创建和管理Java线程,并将每个Java线程映射到一个线程库线程。

我们如何知道创建的线程是本地线程还是绿色线程? - Rachel
精彩的解释 zvdh - samash
1
@Rachel Oracle/OpenJDK/IBM JVM 只有本地线程。 - Thorbjørn Ravn Andersen
1
@ThorbjørnRavnAndersen 绿色线程正在进入JVM - Gurwinder Singh
@GurwinderSingh 谢谢你指出这个。看起来他们正在考虑比那更激进的事情,只是让它模拟线程,从本质上给出绿色线程。非常有趣。 - Thorbjørn Ravn Andersen

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