自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何看待Java綠色線程的相關(guān)應(yīng)用效果

開發(fā) 后端
Java綠色線程需要我們注意的東西有很多,其實在使用的時候我們就在一直不斷的完善相關(guān)的使用。希望大家有所收獲。

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語言的線程的運行速度比較慢。#t#

 

難道說,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)存垃圾回收的語言來說,可不是一件容易的事情。

 

責(zé)任編輯:張浩 來源: 博客園
相關(guān)推薦

2010-03-10 19:34:45

Python主線程

2010-03-16 18:40:59

Java多線程編程

2010-03-16 18:24:44

Java線程模型

2009-12-03 20:15:13

模塊化路由器

2010-03-18 15:31:13

Java創(chuàng)建線程

2009-09-01 17:15:42

C#多線程應(yīng)用

2009-06-11 11:17:59

Java多線程

2009-11-19 15:14:43

路由器系統(tǒng)

2009-01-12 09:49:03

Java線程多線程thread

2009-03-11 11:10:15

JavaJava開發(fā)線程

2010-03-16 17:52:27

Java多線程信號量

2010-08-03 17:30:07

2010-03-17 19:24:38

Java多線程循環(huán)

2016-06-17 10:35:20

云計算運維

2016-06-21 10:40:54

云計算AWS

2018-12-17 11:22:05

移動芯片網(wǎng)絡(luò)

2019-02-20 13:08:48

CIOIT轉(zhuǎn)型

2023-10-08 08:09:16

數(shù)據(jù)庫性能服務(wù)器

2009-02-19 14:27:00

2010-03-16 10:50:21

Java多線程服務(wù)器
點贊
收藏

51CTO技術(shù)棧公眾號