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

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、成都小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了靈璧免費(fèi)建站歡迎大家使用!
例如,有一個(gè)簡單的模仿游戲打開寶箱得到禮品的程序代碼,參考如下:
我們將其以文件形式保存到系統(tǒng)中,如圖所示。
已經(jīng)保存到系統(tǒng)的 Java 的類文件
這樣,該文件中就包含了我們想要運(yùn)行的一小段程序。當(dāng)使用 Java 的命令或單擊集成開發(fā)環(huán)境的run按鈕時(shí),程序就會運(yùn)行起來,并且按照編寫好的邏輯反饋相關(guān)信息。OpenBox 的運(yùn)行結(jié)果如圖所示。
以上這些看似簡單的操作過程,可以讓我們更好地理解以下幾個(gè)概念:程序、進(jìn)程、線程。
進(jìn)程則是對某程序的運(yùn)行過程。一般地,一份程序的一次運(yùn)行能產(chǎn)生一個(gè)進(jìn)程,進(jìn)程是一個(gè)動(dòng)態(tài)的概念。進(jìn)程的運(yùn)行是需要用到程序的內(nèi)容的,更確切地說,進(jìn)程的運(yùn)行離不開程序,離不開程序中有特殊含義的文本。
實(shí)際上,進(jìn)程運(yùn)行中有專門存放這些文本的區(qū)域,該區(qū)域稱為代碼文本區(qū)域。程序與進(jìn)程是一對多的關(guān)系,即一個(gè)程序可以同時(shí)運(yùn)行一個(gè)或多個(gè)進(jìn)程。單擊集成開發(fā)環(huán)境 的 run 按鈕時(shí),OpenBox.java 對應(yīng)的一個(gè)進(jìn)程就立刻產(chǎn)生了。
理解好程序和進(jìn)程的關(guān)系,就可以對線程加以描述和解釋。線程是比進(jìn)程更細(xì)小的一級劃分, 線程可以利用進(jìn)程所擁有的資源,并且能獨(dú)立完成一項(xiàng)任務(wù),如計(jì)算、輸出顯示信息等。在引入線程的操作系統(tǒng)中,通常是把進(jìn)程作為分配資源的基本單位,而把線程作為獨(dú)立運(yùn)行和獨(dú)立調(diào)度的基本單位。
進(jìn)程與線程也是一對多的關(guān)系,即一個(gè)進(jìn)程中至少有一個(gè)線程與之對應(yīng)。如果一個(gè)進(jìn)程中有多個(gè)線程同時(shí)存在,那么就是多線程的進(jìn)程。上面的OpenBox.java 程序運(yùn)行時(shí),其在產(chǎn)生一個(gè) 進(jìn)程的同時(shí),也產(chǎn)生了一個(gè)單線程與之對應(yīng)。也就是說,當(dāng)運(yùn)行 OpenBox.java程序時(shí),該行為所產(chǎn)生的進(jìn)程是一個(gè)單線程進(jìn)程。
程序、進(jìn)程、線程的關(guān)系如圖所示。
程序、進(jìn)程、線程的關(guān)系
知識拓展:
近年來,隨著大數(shù)據(jù)的興起,對于大數(shù)據(jù)的處理要求比傳統(tǒng)的普通數(shù)據(jù)處理要求有了更高的 標(biāo)準(zhǔn),Java 在大數(shù)據(jù)的處理方面也在不斷地優(yōu)化,特別是在開源社區(qū)中,許多開發(fā)貢獻(xiàn)者提供了許 多大數(shù)據(jù)處理相關(guān)的組件和中間件。
其中一個(gè)稱為 quasar 的組件實(shí)現(xiàn)了 Java 的纖程。纖程是比線 程更小的一級劃分,它所占用的系統(tǒng)資源更少,可以理解為更輕量級的一種特殊線程。一般地,從占用系統(tǒng)資源的大小方面來說,可以這樣排序:進(jìn)程 > 線程 > 纖程。
本文授權(quán)轉(zhuǎn)載自《Java 多線程與大數(shù)據(jù)處理實(shí)戰(zhàn)》一書,更多請參考這本書。
文章名稱:進(jìn)程、線程、纖程的區(qū)別,有幾個(gè)人知道?
本文鏈接:http://www.dlmjj.cn/article/cdjjsee.html


咨詢
建站咨詢
