溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Java綠色線程是什么意思

發(fā)布時間:2021-09-09 09:53:02 來源:億速云 閱讀:280 作者:chen 欄目:編程語言

這篇文章主要講解了“Java綠色線程是什么意思”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Java綠色線程是什么意思”吧!

Java綠色線程到底是一個怎么回事呢?這些問題需要我們從本質(zhì)中看問題。下面我們就來看看Java綠色線程(Green Thread)是一個相對于操作系統(tǒng)線程(Native Thread)的概念。

操作系統(tǒng)線程(Native Thread)的意思就是,程序里面的線程會真正映射到操作系統(tǒng)的線程,線程的運行和調(diào)度都是由操作系統(tǒng)控制的

Java綠色線程(Green Thread)的意思是,程序里面的線程不會真正映射到操作系統(tǒng)的線程,而是由語言運行平臺自身來調(diào)度。

當(dāng)前版本的Python語言的線程就可以映射到操作系統(tǒng)線程。當(dāng)前版本的Ruby語言的線程就屬于綠色線程,無法映射到操作系統(tǒng)的線程,因此Ruby語言的線程的運行速度比較慢。

難道說,Java綠色線程要比操作系統(tǒng)線程要慢嗎?當(dāng)然不是這樣。事實上,情況可能正好相反。Ruby是一個特殊的例子。線程調(diào)度器并不是很成熟。

目前,線程的流行實現(xiàn)模型就是Java綠色線程。比如,stackless Python,就引入了更加輕量的綠色線程概念。在線程并發(fā)編程方面,無論是運行速度還是并發(fā)負(fù)載上,都優(yōu)于Python。

另一個更著名的例子就是ErLang(愛立信公司開發(fā)的一種開源語言)。

ErLang的Java綠色線程概念非常徹底。ErLang的線程不叫Thread,而是叫做Process。這很容易和進(jìn)程混淆起來。這里要注意區(qū)分一下。

ErLang Process之間根本就不需要同步。因為ErLang語言的所有變量都是final的,不允許變量的值發(fā)生任何變化。因此根本就不需要同步。

final變量的另一個好處就是,對象之間不可能出現(xiàn)交叉引用,不可能構(gòu)成一種環(huán)狀的關(guān)聯(lián),對象之間的關(guān)聯(lián)都是單向的,樹狀的。因此,內(nèi)存垃圾回收的算法效率也非常高。這就讓ErLang能夠達(dá)到Soft Real Time(軟實時)的效果。這對于一門支持內(nèi)存垃圾回收的語言來說,可不是一件容易的事情。

感謝各位的閱讀,以上就是“Java綠色線程是什么意思”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Java綠色線程是什么意思這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI