java多線程編程總結(jié).pdf

java多線程編程總結(jié).pdf

ID:50160504

大小:594.23 KB

頁(yè)數(shù):85頁(yè)

時(shí)間:2020-03-08

java多線程編程總結(jié).pdf_第1頁(yè)
java多線程編程總結(jié).pdf_第2頁(yè)
java多線程編程總結(jié).pdf_第3頁(yè)
java多線程編程總結(jié).pdf_第4頁(yè)
java多線程編程總結(jié).pdf_第5頁(yè)
資源描述:

《java多線程編程總結(jié).pdf》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。

1、Java多線程編程線程:大總結(jié)Java線程是Java語(yǔ)言中一個(gè)非常重要的部分,Java5之前,多線程的語(yǔ)言支持還是比較弱的,內(nèi)容也較少,寫(xiě)一個(gè)復(fù)雜的多線程程序是相當(dāng)有挑戰(zhàn)性的。在Java5以后,Java對(duì)多線程做了很多擴(kuò)展,擴(kuò)展部分稱之為并發(fā)包。這部分內(nèi)容大大增強(qiáng)了Java多線程編程的能力,通過(guò)使用Java5線程新特征的API,可以很容易的做出復(fù)雜的多線程程序。與其他語(yǔ)言相比,已經(jīng)是相當(dāng)強(qiáng)悍了。通過(guò)十多篇博文,將Java多線程的方方面面過(guò)了一遍,對(duì)我來(lái)說(shuō)是一個(gè)學(xué)習(xí)和提高的過(guò)程,也為Java線程系列博文能給

2、后來(lái)的學(xué)習(xí)者帶來(lái)便利。知識(shí)點(diǎn)都過(guò)了一遍,要總結(jié)起來(lái)感覺(jué)很困難,畢竟Java線程是一個(gè)龐大的話題,不知道從何說(shuō)起,如果泛泛而談,那總結(jié)還有什么意義呢,再次,將前面的博文串聯(lián)起來(lái),按照先后順序加上鏈接,以方便瀏覽也最好的首尾。下面是Java線程系列博文的一個(gè)編目:Java線程:概念與原理Java線程:創(chuàng)建與啟動(dòng)Java線程:線程棧模型與線程的變量Java線程:線程狀態(tài)的轉(zhuǎn)換Java線程:線程的同步與鎖Java線程:線程的交互Java線程:線程的調(diào)度-休眠Java線程:線程的調(diào)度-優(yōu)先級(jí)Java線程:線程的調(diào)度

3、-讓步Java線程:線程的調(diào)度-合并Java線程:線程的調(diào)度-守護(hù)線程Java線程:線程的同步-同步方法Java線程:線程的同步-同步塊Java線程:并發(fā)協(xié)作-生產(chǎn)者消費(fèi)者模型Java線程:并發(fā)協(xié)作-死鎖Java線程:volatile關(guān)鍵字Java線程:新特征-線程池Java線程:新特征-有返回值的線程Java線程:新特征-鎖(上)Java線程:新特征-鎖(下)Java線程:新特征-信號(hào)量Java線程:新特征-阻塞隊(duì)列Java線程:新特征-阻塞棧Java線程:新特征-條件變量Java線程:新特征-原子量J

4、ava線程:新特征-障礙器Java線程:大總結(jié)Java線程:概念與原理一、操作系統(tǒng)中線程和進(jìn)程的概念現(xiàn)在的操作系統(tǒng)是多任務(wù)操作系統(tǒng)。多線程是實(shí)現(xiàn)多任務(wù)的一種方式。進(jìn)程是指一個(gè)內(nèi)存中運(yùn)行的應(yīng)用程序,每個(gè)進(jìn)程都有自己獨(dú)立的一塊內(nèi)存空間,一個(gè)進(jìn)程中可以啟動(dòng)多個(gè)線程。比如在Windows系統(tǒng)中,一個(gè)運(yùn)行的exe就是一個(gè)進(jìn)程。線程是指進(jìn)程中的一個(gè)執(zhí)行流程,一個(gè)進(jìn)程中可以運(yùn)行多個(gè)線程。比如java.exe進(jìn)程中可以運(yùn)行很多線程。線程總是屬于某個(gè)進(jìn)程,進(jìn)程中的多個(gè)線程共享進(jìn)程的內(nèi)存。“同時(shí)”執(zhí)行是人的感覺(jué),在線程之間實(shí)

5、際上輪換執(zhí)行。二、Java中的線程在Java中,“線程”指兩件不同的事情:1、java.lang.Thread類的一個(gè)實(shí)例;2、線程的執(zhí)行。使用java.lang.Thread類或者java.lang.Runnable接口編寫(xiě)代碼來(lái)定義、實(shí)例化和啟動(dòng)新線程。一個(gè)Thread類實(shí)例只是一個(gè)對(duì)象,像Java中的任何其他對(duì)象一樣,具有變量和方法,生死于堆上。Java中,每個(gè)線程都有一個(gè)調(diào)用棧,即使不在程序中創(chuàng)建任何新的線程,線程也在后臺(tái)運(yùn)行著。一個(gè)Java應(yīng)用總是從main()方法開(kāi)始運(yùn)行,mian()方法運(yùn)行

6、在一個(gè)線程內(nèi),它被稱為主線程。一旦創(chuàng)建一個(gè)新的線程,就產(chǎn)生一個(gè)新的調(diào)用棧。線程總體分兩類:用戶線程和守候線程。當(dāng)所有用戶線程執(zhí)行完畢的時(shí)候,JVM自動(dòng)關(guān)閉。但是守候線程卻不獨(dú)立于JVM,守候線程一般是由操作系統(tǒng)或者用戶自己創(chuàng)建的。Java線程:創(chuàng)建與啟動(dòng)一、定義線程1、擴(kuò)展java.lang.Thread類。此類中有個(gè)run()方法,應(yīng)該注意其用法:publicvoidrun()如果該線程是使用獨(dú)立的Runnable運(yùn)行對(duì)象構(gòu)造的,則調(diào)用該Runnable對(duì)象的run方法;否則,該方法不執(zhí)行任何操作并返回

7、。Thread的子類應(yīng)該重寫(xiě)該方法。2、實(shí)現(xiàn)java.lang.Runnable接口。voidrun()使用實(shí)現(xiàn)接口Runnable的對(duì)象創(chuàng)建一個(gè)線程時(shí),啟動(dòng)該線程將導(dǎo)致在獨(dú)立執(zhí)行的線程中調(diào)用對(duì)象的run方法。方法run的常規(guī)協(xié)定是,它可能執(zhí)行任何所需的操作。二、實(shí)例化線程1、如果是擴(kuò)展java.lang.Thread類的線程,則直接new即可。2、如果是實(shí)現(xiàn)了java.lang.Runnable接口的類,則用Thread的構(gòu)造方法:Thread(Runnabletarget)Thread(Runnabl

8、etarget,Stringname)Thread(ThreadGroupgroup,Runnabletarget)Thread(ThreadGroupgroup,Runnabletarget,Stringname)Thread(ThreadGroupgroup,Runnabletarget,Stringname,longstackSize)三、啟動(dòng)線程在線程的Thread對(duì)象上調(diào)用start()方法,而不是run()或者別的

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。