文章詳情頁
JAVA教程:解析Java的多線程機(jī)制(2)
瀏覽:33日期:2024-07-02 11:18:51
內(nèi)容: 進(jìn)程與Java線程的區(qū)別 應(yīng)用程序在執(zhí)行過程中存在一個(gè)內(nèi)存空間的初始入口點(diǎn)地址、一個(gè)程序執(zhí)行過程中的代碼執(zhí)行序列以及用于標(biāo)識進(jìn)程結(jié)束的內(nèi)存出口點(diǎn)地址,在進(jìn)程執(zhí)行過程中的每一時(shí)間點(diǎn)均有唯一的處理器指令與內(nèi)存單元地址相對應(yīng)。 Java語言中定義的線程(Thread)同樣包括一個(gè)內(nèi)存入口點(diǎn)地址、一個(gè)出口點(diǎn)地址以及能夠順序執(zhí)行的代碼序列。但是進(jìn)程與線程的重要區(qū)別在于線程不能夠單獨(dú)執(zhí)行,它必須運(yùn)行在處于活動狀態(tài)的應(yīng)用程序進(jìn)程中,因此可以定義線程是程序內(nèi)部的具有并發(fā)性的順序代碼流。 Unix操作系統(tǒng)和Microsoft Windows操作系統(tǒng)支持多用戶、多進(jìn)程的并發(fā)執(zhí)行,而Java語言支持應(yīng)用程序進(jìn)程內(nèi)部的多個(gè)執(zhí)行線程的并發(fā)執(zhí)行。多線程的意義在于一個(gè)應(yīng)用程序的多個(gè)邏輯單元可以并發(fā)地執(zhí)行。但是多線程并不意味著多個(gè)用戶進(jìn)程在執(zhí)行,操作系統(tǒng)也不把每個(gè)線程作為獨(dú)立的進(jìn)程來分配獨(dú)立的系統(tǒng)資源。進(jìn)程可以創(chuàng)建其子進(jìn)程,子進(jìn)程與父進(jìn)程擁有不同的可執(zhí)行代碼和數(shù)據(jù)內(nèi)存空間。而在用于代表應(yīng)用程序的進(jìn)程中多個(gè)線程共享數(shù)據(jù)內(nèi)存空間,但保持每個(gè)線程擁有獨(dú)立的執(zhí)行堆棧和程序執(zhí)行上下文(Context)。 基于上述區(qū)別,線程也可以稱為輕型進(jìn)程 (Light Weight Process,LWP)。不同線程間允許任務(wù)協(xié)作和數(shù)據(jù)交換,使得在計(jì)算機(jī)系統(tǒng)資源消耗等方面非常廉價(jià)。 線程需要操作系統(tǒng)的支持,不是所有類型的計(jì)算機(jī)都支持多線程應(yīng)用程序。Java程序設(shè)計(jì)語言將線程支持與語言運(yùn)行環(huán)境結(jié)合在一起,提供了多任務(wù)并發(fā)執(zhí)行的能力。這就好比一個(gè)人在處理家務(wù)的過程中,將衣服放到洗衣機(jī)中自動洗滌后將大米放在電飯鍋里,然后開始做菜。等菜做好了,飯熟了同時(shí)衣服也洗好了。 需要注意的是:在應(yīng)用程序中使用多線程不會增加 CPU 的數(shù)據(jù)處理能力。只有在多CPU 的計(jì)算機(jī)或者在網(wǎng)絡(luò)計(jì)算體系結(jié)構(gòu)下,將Java程序劃分為多個(gè)并發(fā)執(zhí)行線程后,同時(shí)啟動多個(gè)線程運(yù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. Java多線程三種主要實(shí)現(xiàn)方式解析2. 淺談JAVA 線程狀態(tài)中可能存在的一些誤區(qū)3. python 使用多線程創(chuàng)建一個(gè)Buffer緩存器的實(shí)現(xiàn)思路4. 實(shí)例講解spring boot 多線程5. vue cli3.0打包上線靜態(tài)資源找不到路徑的解決操作6. Python matplotlib繪制圖形實(shí)例(包括點(diǎn),曲線,注釋和箭頭)7. Python3利用scapy局域網(wǎng)實(shí)現(xiàn)自動多線程arp掃描功能8. Python多線程通信queue隊(duì)列用法實(shí)例分析9. 淺析IE瀏覽器關(guān)于ajax的緩存機(jī)制10. 基于jsp+mysql實(shí)現(xiàn)在線水果銷售商城系統(tǒng)
排行榜
