




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
主題:線程的生命周期
-Java核心技術(shù)-什么是線程的生命周期?線程的生命周期是指一個線程從產(chǎn)生到消亡的發(fā)展過程。在這個過程中,每一個時刻都是線程生命周期的一個階段。我們把線程生命周期的不同階段稱作線程的不同狀態(tài)。線程的五種狀態(tài)創(chuàng)建(new)可運行(runnable)或就緒狀態(tài)運行中(running)不可運行(notrunnable)或阻塞(blocked)狀態(tài)
死亡(dead)線程的生命周期狀態(tài)圖創(chuàng)建狀態(tài)(new)線程已創(chuàng)建但并未啟動publicstaticvoidmain(String[]args){
MyThreadta=newMyThread();
}可運行狀態(tài)(Runnable)線程已具備除CPU運行時間以外的其它各種所需資源,但尚未運行,或者稱為就緒態(tài)。
publicstaticvoidmain(String[]args){
MyThreadta=newMyThread();
ta.start();
}運行狀態(tài)(Running)線程已是真正擁有CPU使用權(quán)的線程,執(zhí)行線程對象的run()方法publicstaticvoidmain(String[]args){
MyThreadta=newMyThread();
ta.start();
Thread.sleep();
}不可運行狀態(tài)(notRunnable)因為某種原因使得線程處于無法運行的狀態(tài)。處于阻塞狀態(tài)的線程即使擁有CPU使用時間也無法運行。死亡狀態(tài)(Dead)線程結(jié)束其生命周期,進入無法再次運行的狀態(tài)線程狀態(tài)的枚舉值Thread.State類中的各狀態(tài)值狀態(tài)值含義NEW處于創(chuàng)建狀態(tài)的線程RUNNABLE處于可運行狀態(tài)的線程BLCOKED處于不可運行狀態(tài)(阻塞狀態(tài))的線程WAITTING被其他線程用wait方法阻塞的線程,或使用join方法后進入的狀態(tài)TIMED_WAITTING計時等待TERMINATED處于死亡狀態(tài)的線程輸出線程的三種典型狀態(tài)publicstaticvoidmain(String[]args){try{ MyThreadta=newMyThread();//創(chuàng)建一個新線程
System.out.println("MainThreadPrint:"+ta.getState()); ta.start();//啟動新線程
System.out.println("MainThreadPrint:"+ta.getState()); ta.join();//等待新創(chuàng)建的新線程死亡
System.out.println("MainThreadPrint:"+ta.getState());}catch(Exceptione){ e.printStackTrace();//打印出錯信息
}}線程的調(diào)度的方法Thread類中的方法startrunyieldsleepjoinisAlivesuspendresumestopObject類中的方法waitnotifynotifyAll線程的調(diào)度publicstaticvoidmain(String[]args){
try{ MyThreadmt=newMyThread();//創(chuàng)建一個新線程對象
mt.start();//啟動新線程
while(true){ System.out.println("MainThreadisRunning"); Thread.sleep(250);//休眠0.25秒
}}catch(InterruptedExceptionie){ ie.printStackTrace();//打印出錯信息
}}小結(jié)什么是線程的生命周期?線程的生命周期有哪幾種狀態(tài)?請列舉引起線程狀態(tài)轉(zhuǎn)換的幾個常用方法?作業(yè)創(chuàng)建一個具有2個線程的多線程程序,使用線程調(diào)度函數(shù),使2個兩個線程交替輸出5次各自的線程名。其輸出結(jié)果應(yīng)如圖所示。主題:線程的優(yōu)先級
-Java核心技術(shù)-優(yōu)先級優(yōu)先級在多線程系統(tǒng)中,每個線程都被賦予一個執(zhí)行優(yōu)先級。優(yōu)先級決定了線程被CPU執(zhí)行的優(yōu)先次序。如果線程的優(yōu)先級完全相等,就按照“先到先服務(wù)”的原則進行調(diào)度。Java語言中優(yōu)先級的范圍在Thread.MIN_PRIORITY(1)-Thread.MAX_PRIORITY(10)之間。默認的優(yōu)先級為Thread.NORM_PRIORITY(5).新建線程的優(yōu)先級(1)繼承創(chuàng)建它的父線程的優(yōu)先級。(2)通過調(diào)用Thread類的setPriority(inta)方法來設(shè)置線程的優(yōu)先級。getPriority()能返回線程當(dāng)前的優(yōu)先級級別。線程的優(yōu)先級控制線程運行publicstaticvoidmain(String[]args){
MyThreadmta=newMyThread("ThreadA");//創(chuàng)建線程Amta.setPriority(Thread.MIN_PRIORITY);mta.start();
MyThreadmtb=newMyThread("ThreadB");//創(chuàng)建線程Bmtb.setPriority(Thread.NORM_PRIORITY);mtb.start();
MyThreadmtc=newMyThread("ThreadC");//創(chuàng)建線程Cmtc.setPriority(Thread.MAX_PRIORITY);mtc.start();
}線程的優(yōu)先級控制線程運行classMyThreadextendsThread{ privateStringname;//線程名
publicMyThread(Stringname){ =name; }publicvoidrun(){for(inti=0;i<3;i++){System.out.println(+"優(yōu)先級是"+this.getPriority());try{ this.sleep(100);//設(shè)定休眠時間
}catch(InterruptedExceptionie){ ie.printStackTrace(); }}}}小結(jié)線程優(yōu)先級的主要用途是什么?Java中線程的優(yōu)先級有幾級?如何設(shè)置和獲取線程的優(yōu)先級?主題:線程組
-Java核心技術(shù)-什么是線程組?線程組:提供了一個統(tǒng)一管理多個線程而不需單獨管理的機制。當(dāng)多個線程分為一組時,可以用一個方法啟動或掛起線程組中的所有線程
java.lang.ThreadGroup類來支持線程組的實現(xiàn)線程組的組成ThreadGroup類的構(gòu)造方法構(gòu)造方法publicThreadGroup(Stringname)publicThreadGroup(ThreadGroupparent,Stringname)父線程組的名稱線程組名稱ThreadGroup類的常用方法publicStringgetName()
//返回當(dāng)前線程組名publicintactiveCount()
//獲得本組活動線程的數(shù)目publicThreadGroupgetParent()
//得到當(dāng)前線程組的父線程組publicvoidinterrupt()
//中斷線程組中所有線程及其子線程組中所有線程publicintenumerate(Thread[]list) //將本組活動線程拷貝到數(shù)組list中線程組控制publicstaticvoidlistCurrentThreads(){ThreadGroupcurGroup=Thread.currentThread().getThreadGroup();intnumThreads=curGroup.activeCount();System.out.println("當(dāng)前線程組共有線程:"+numThreads);Thread[]listOfThreads=newThread[numThreads];curGroup.enumerate(listOfThreads);//輸出每個線程的名字
for(inti=0;i<numThreads;i++){ System.out.println(“第”+i+“個線程:"+listOfThreads[i].getName()); }}小結(jié)什么是線程組?線程組有什么作用?如何實現(xiàn)建立和訪問線程組?主題:守護線程-Java核心技術(shù)-守護線程守護線程(DaemonThreads)也稱后臺線程,是指在程序運行的時候在后臺提供一種通用服務(wù)的線程。這種線程并不屬于程序中不可或缺的部分,也就是說守護線程不會阻止程序的終止。當(dāng)所有的非后臺線程結(jié)束時,守護線程也就終止了。Thread類的守護線程的方法publicfinalbooleanisDaemon()
//判斷一個線程是否是守護線程publicfinalvoidsetDaemon(boolean
on)
//將一個線程設(shè)為守護線程必須在start()方法之前設(shè)置
線程組控制classMyThreadextendsThread{ publicMyThread(){
this.setDaemon(true);//將線程設(shè)為守護線程
this.start();//啟動線程
}……}小結(jié)什么是守護線程?如何設(shè)置線程為守護線程?作業(yè)判斷下面說明是否正確?為什么?①如果線程處于死亡狀態(tài),則它不是Runnable線程②在Java中,較高優(yōu)先級的Runnable線程應(yīng)搶在較低優(yōu)先級線程的前面執(zhí)行③在線程休眠時,sleep方法不會占用處理器時間④yield方法將導(dǎo)致線程進入不可運行狀態(tài)⑤一個線程不通過start方法也可以進入可運行狀態(tài)⑥守護線程會阻止程序的終止主題:守護線程-Java核心技術(shù)-守護線程守護線程(DaemonThreads)也稱后臺線程,是指在程序運行的時候在后臺提供一種通用服務(wù)的線程。這種線程并不屬于程序中不可或缺的部分,也就是說守護線程不會阻止程序的終止。當(dāng)所有的非后臺線程結(jié)束時,守護線程也就終止了。Thread類的守護線程的方法publicfinalbooleanisDaemon()
//判斷一個線程是否是守護線程publicfinalvoidsetDaemon(boolean
on)
//將一個線程設(shè)為守護線程必須在start()方法之前設(shè)置
線程組控制classMyThreadextendsThread{ publicMyThread(){
this.setDaemon(true);
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年黨章黨紀(jì)黨史黨建知識競賽多項選擇題庫及答案(共190道題)
- 節(jié)日教職工福利(花生油)項目 投標(biāo)方案(技術(shù)方案)
- 鄉(xiāng)村農(nóng)田管理與開發(fā)協(xié)議
- 音樂制作與發(fā)行全流程指南
- 船舶導(dǎo)航與航行技術(shù)指南
- 環(huán)保設(shè)備可行性研究報告
- 教育用地整合居間協(xié)議
- 化工原料與產(chǎn)品檢測作業(yè)指導(dǎo)書
- 監(jiān)控工程合同
- 項目立項與可行性研究
- 砷化鎵半導(dǎo)體晶圓生產(chǎn)線項目環(huán)評報告表
- 有機化學(xué)(馮駿材編)課后習(xí)題答案
- 東北三省三校2024年高三一模(第一次聯(lián)合模擬考試)語文試卷(含答案)
- 無人機的傳感器系統(tǒng)
- 圖文解讀中小學(xué)教育懲戒規(guī)則(試行)全文內(nèi)容課件模板
- 2024年廣西旅發(fā)置業(yè)集團有限公司招聘筆試參考題庫含答案解析
- 《無塵室基礎(chǔ)知識》課件
- 中式烹調(diào)技藝教案
- 人工智能引論智慧樹知到課后章節(jié)答案2023年下浙江大學(xué)
- 加固工程監(jiān)理實施細則
- 醫(yī)保按病種分值付費(DIP)院內(nèi)培訓(xùn)
評論
0/150
提交評論