2013-03-07 54 views
12
  • 綠色線程和本地線程有什麼區別?
  • 它爲什麼命名爲綠色和原生?

我是編程界的新手。我喜歡學習java。在通過Java線程面試問題時,我發現了這一點。我聽說過線程,但不是這些綠色和本地的。 我對綠色和本地線程進行了窺視,但無法獲得清晰的想法。java中的綠色線程和原生線程

在這種情況下,該線程被認爲是綠色或本土?(我指的是編程)

+2

谷歌並不是唯一的答案:http://en.wikipedia.org/wiki/Green_threads – giorashc 2013-03-07 09:21:33

+1

你去:http://www.jguru.com/faq/view.jsp?EID=143462 – giorashc 2013-03-07 09:23:05

+0

@giorashc我們如何知道創建的線程是本地還是綠色? – Rachel 2013-03-07 09:46:18

回答

12

是什麼綠色和原生線程之間的區別?

綠色線程由虛擬機調度。

原生線程由操作系統調度。

爲什麼它命名爲綠色和原生?

「綠色」是較早的JVM線程項目代碼名稱。它是庫的名稱,它提供了VM調度線程Java 1.1

因爲它們屬於本機平臺而調用的本機線程。

我們如何知道創建的線程是本地還是綠色?

綠色線程在過去的JVM只能用本地線程工作,因爲1.3

「綠線」是指在Java虛擬機 本身創建,管理模型,以及上下文切換所有一個操作系統進程中的 內的Java線程。沒有使用操作系統線程庫 。

「原生線程」是指在Java虛擬機創建 和管理使用的操作系統線程庫Java線程 - 命名的libthread UnixWare上 - 與每個Java線程映射到一個 線程庫線程。

+0

明確而好的解釋..謝謝zvzdhk我們如何知道創建的線程是本機還是綠色? – Rachel 2013-03-07 09:50:46

+0

精彩解說zvdh – samash 2014-01-11 08:19:14

+0

@Rachel Oracle/OpenJDK/IBM JVM只有本地線程。 – 2017-06-25 10:16:05