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

進程、線程、纖程的區(qū)別,有幾個人知道?

開發(fā) 后端
在Java 中,這些短小的代碼段一般會被放入一個class,然后保存到一個擴展名為 .java 的文件中;之后通過命令行或集成開發(fā)環(huán)境工具的編譯,生成 .class文件并讓這個 .class文件運行起來,得到我們想要的結(jié)果。

在Java 中,這些短小的代碼段一般會被放入一個class,然后保存到一個擴展名為 .java 的文件中;之后通過命令行或集成開發(fā)環(huán)境工具的編譯,生成 .class文件并讓這個 .class文件運行起來,得到我們想要的結(jié)果。

例如,有一個簡單的模仿游戲打開寶箱得到禮品的程序代碼,參考如下:

我們將其以文件形式保存到系統(tǒng)中,如圖所示。

 已經(jīng)保存到系統(tǒng)的 Java 的類文件

這樣,該文件中就包含了我們想要運行的一小段程序。當使用 Java 的命令或單擊集成開發(fā)環(huán)境的run按鈕時,程序就會運行起來,并且按照編寫好的邏輯反饋相關(guān)信息。OpenBox 的運行結(jié)果如圖所示。

以上這些看似簡單的操作過程,可以讓我們更好地理解以下幾個概念:程序、進程、線程。

進程則是對某程序的運行過程。一般地,一份程序的一次運行能產(chǎn)生一個進程,進程是一個動態(tài)的概念。進程的運行是需要用到程序的內(nèi)容的,更確切地說,進程的運行離不開程序,離不開程序中有特殊含義的文本。

實際上,進程運行中有專門存放這些文本的區(qū)域,該區(qū)域稱為代碼文本區(qū)域。程序與進程是一對多的關(guān)系,即一個程序可以同時運行一個或多個進程。單擊集成開發(fā)環(huán)境 的 run 按鈕時,OpenBox.java 對應(yīng)的一個進程就立刻產(chǎn)生了。

理解好程序和進程的關(guān)系,就可以對線程加以描述和解釋。線程是比進程更細小的一級劃分, 線程可以利用進程所擁有的資源,并且能獨立完成一項任務(wù),如計算、輸出顯示信息等。在引入線程的操作系統(tǒng)中,通常是把進程作為分配資源的基本單位,而把線程作為獨立運行和獨立調(diào)度的基本單位。

進程與線程也是一對多的關(guān)系,即一個進程中至少有一個線程與之對應(yīng)。如果一個進程中有多個線程同時存在,那么就是多線程的進程。上面的OpenBox.java 程序運行時,其在產(chǎn)生一個 進程的同時,也產(chǎn)生了一個單線程與之對應(yīng)。也就是說,當運行 OpenBox.java程序時,該行為所產(chǎn)生的進程是一個單線程進程。

程序、進程、線程的關(guān)系如圖所示。

程序、進程、線程的關(guān)系

知識拓展:

近年來,隨著大數(shù)據(jù)的興起,對于大數(shù)據(jù)的處理要求比傳統(tǒng)的普通數(shù)據(jù)處理要求有了更高的 標準,Java 在大數(shù)據(jù)的處理方面也在不斷地優(yōu)化,特別是在開源社區(qū)中,許多開發(fā)貢獻者提供了許 多大數(shù)據(jù)處理相關(guān)的組件和中間件。

其中一個稱為 quasar 的組件實現(xiàn)了 Java 的纖程。纖程是比線 程更小的一級劃分,它所占用的系統(tǒng)資源更少,可以理解為更輕量級的一種特殊線程。一般地,從占用系統(tǒng)資源的大小方面來說,可以這樣排序:進程 > 線程 > 纖程。

本文授權(quán)轉(zhuǎn)載自《Java 多線程與大數(shù)據(jù)處理實戰(zhàn)》一書,更多請參考這本書。 

 

責任編輯:龐桂玉 來源: Java技術(shù)棧
相關(guān)推薦

2010-11-08 13:04:36

SQL SERVER線

2023-11-17 11:36:59

協(xié)程纖程操作系統(tǒng)

2023-10-12 09:46:00

并發(fā)模型線程

2018-12-11 14:40:53

HashMapHashtableJava

2021-09-08 10:54:55

開源Linus創(chuàng)始人

2010-11-08 13:15:13

SQL SERVER線

2010-07-08 16:00:51

SQL Server線

2010-07-20 10:34:51

SQL Server線

2023-10-11 07:39:58

Java虛擬線程

2010-07-07 14:57:25

SQL Server線

2020-03-23 10:08:56

5G網(wǎng)絡(luò)技術(shù)

2023-11-29 08:02:16

線程進程

2010-06-30 08:13:18

SQL Server數(shù)

2020-11-29 17:03:08

進程線程協(xié)程

2012-10-31 10:43:27

職涯規(guī)劃能力培養(yǎng)開發(fā)

2012-10-31 10:42:34

培養(yǎng)挑戰(zhàn)開發(fā)

2023-12-13 09:56:13

?多進程多線程協(xié)程

2022-02-08 07:02:32

進程線程操作系統(tǒng)

2019-08-29 09:10:45

MySQLSQL數(shù)據(jù)庫

2019-10-08 15:08:23

互聯(lián)網(wǎng)數(shù)據(jù)技術(shù)
點贊
收藏

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