文章詳情頁(yè)
JAVA教程:解析Java的多線(xiàn)程機(jī)制(2)
瀏覽:53日期:2024-07-02 11:18:51
內(nèi)容: 進(jìn)程與Java線(xiàn)程的區(qū)別 應(yīng)用程序在執(zhí)行過(guò)程中存在一個(gè)內(nèi)存空間的初始入口點(diǎn)地址、一個(gè)程序執(zhí)行過(guò)程中的代碼執(zhí)行序列以及用于標(biāo)識(shí)進(jìn)程結(jié)束的內(nèi)存出口點(diǎn)地址,在進(jìn)程執(zhí)行過(guò)程中的每一時(shí)間點(diǎn)均有唯一的處理器指令與內(nèi)存單元地址相對(duì)應(yīng)。 Java語(yǔ)言中定義的線(xiàn)程(Thread)同樣包括一個(gè)內(nèi)存入口點(diǎn)地址、一個(gè)出口點(diǎn)地址以及能夠順序執(zhí)行的代碼序列。但是進(jìn)程與線(xiàn)程的重要區(qū)別在于線(xiàn)程不能夠單獨(dú)執(zhí)行,它必須運(yùn)行在處于活動(dòng)狀態(tài)的應(yīng)用程序進(jìn)程中,因此可以定義線(xiàn)程是程序內(nèi)部的具有并發(fā)性的順序代碼流。 Unix操作系統(tǒng)和Microsoft Windows操作系統(tǒng)支持多用戶(hù)、多進(jìn)程的并發(fā)執(zhí)行,而Java語(yǔ)言支持應(yīng)用程序進(jìn)程內(nèi)部的多個(gè)執(zhí)行線(xiàn)程的并發(fā)執(zhí)行。多線(xiàn)程的意義在于一個(gè)應(yīng)用程序的多個(gè)邏輯單元可以并發(fā)地執(zhí)行。但是多線(xiàn)程并不意味著多個(gè)用戶(hù)進(jìn)程在執(zhí)行,操作系統(tǒng)也不把每個(gè)線(xiàn)程作為獨(dú)立的進(jìn)程來(lái)分配獨(dú)立的系統(tǒng)資源。進(jìn)程可以創(chuàng)建其子進(jìn)程,子進(jìn)程與父進(jìn)程擁有不同的可執(zhí)行代碼和數(shù)據(jù)內(nèi)存空間。而在用于代表應(yīng)用程序的進(jìn)程中多個(gè)線(xiàn)程共享數(shù)據(jù)內(nèi)存空間,但保持每個(gè)線(xiàn)程擁有獨(dú)立的執(zhí)行堆棧和程序執(zhí)行上下文(Context)。 基于上述區(qū)別,線(xiàn)程也可以稱(chēng)為輕型進(jìn)程 (Light Weight Process,LWP)。不同線(xiàn)程間允許任務(wù)協(xié)作和數(shù)據(jù)交換,使得在計(jì)算機(jī)系統(tǒng)資源消耗等方面非常廉價(jià)。 線(xiàn)程需要操作系統(tǒng)的支持,不是所有類(lèi)型的計(jì)算機(jī)都支持多線(xiàn)程應(yīng)用程序。Java程序設(shè)計(jì)語(yǔ)言將線(xiàn)程支持與語(yǔ)言運(yùn)行環(huán)境結(jié)合在一起,提供了多任務(wù)并發(fā)執(zhí)行的能力。這就好比一個(gè)人在處理家務(wù)的過(guò)程中,將衣服放到洗衣機(jī)中自動(dòng)洗滌后將大米放在電飯鍋里,然后開(kāi)始做菜。等菜做好了,飯熟了同時(shí)衣服也洗好了。 需要注意的是:在應(yīng)用程序中使用多線(xiàn)程不會(huì)增加 CPU 的數(shù)據(jù)處理能力。只有在多CPU 的計(jì)算機(jī)或者在網(wǎng)絡(luò)計(jì)算體系結(jié)構(gòu)下,將Java程序劃分為多個(gè)并發(fā)執(zhí)行線(xiàn)程后,同時(shí)啟動(dòng)多個(gè)線(xiàn)程運(yùn)行,使不同的線(xiàn)程運(yùn)行在基于不同處理器的Java虛擬機(jī)中,才能提高應(yīng)用程序的執(zhí)行效率。轉(zhuǎn)自: 賽迪網(wǎng) Java, java, J2SE, j2se, J2EE, j2ee, J2ME, j2me, ejb, ejb3, JBOSS, jboss, spring, hibernate, jdo, struts, webwork, ajax, AJAX, mysql, MySQL, Oracle, Weblogic, Websphere, scjp, scjd
標(biāo)簽:
Java
相關(guān)文章:
1. Docker 容器健康檢查機(jī)制2. python matplotlib模塊基本圖形繪制方法小結(jié)【直線(xiàn),曲線(xiàn),直方圖,餅圖等】3. 在線(xiàn)php代碼縮進(jìn)、代碼美化工具:PHP Formatter4. Python多線(xiàn)程操作之互斥鎖、遞歸鎖、信號(hào)量、事件實(shí)例詳解5. python實(shí)現(xiàn)線(xiàn)性回歸算法6. JAVA教程:解析Java的多線(xiàn)程機(jī)制(3)7. vue組件庫(kù)的在線(xiàn)主題編輯器的實(shí)現(xiàn)思路8. Python迭代器協(xié)議及for循環(huán)工作機(jī)制詳解9. python中Matplotlib繪制直線(xiàn)的實(shí)例代碼10. Python多線(xiàn)程threading創(chuàng)建及使用方法解析
排行榜
