版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
本章內(nèi)容異常處理多線程異常處理異常(Exception)
程序執(zhí)行過程中發(fā)生的中斷了正常指令流的事件
Throwable類Error類Exception類RuntimeExceptionIOExceptionAWTException……聲明和拋出異常聲明異常voidtest()
throws
異常1,異常2{}拋出異常
if(條件1)
thrownew異常1();
if(條件2)
thrownew異常2();例:publicvoidtest()throwsIOException{if(打開文件錯誤)
thrownewIOException(“文件打不開”);}捕獲異常try{
有異常拋出的函數(shù)調(diào)用;}catch(捕獲的異常類1變量){
異常處理}catch(捕獲的異常類2變量){
異常處理}finally{
無論有無異常拋出,都執(zhí)行這里的語句;
主要用于資源釋放;}自定義異常classmyexception
extendsException{
Stringmsg;
publicmyexception(Strings){msg=s;}publicStringgetMessage(){returnmsg;}}覆寫父類方法publicclassexception{publicvoidtest(Strings)throwsmyexception{if(s.equalsIgnoreCase("test"))
thrownewmyexception("測試");}
publicstaticvoidmain(String[]args){exceptionex=newexception();
try{ex.test("test");
}catch(myexceptione){
System.out.println(e.toString());}finally{}}}聲明函數(shù)異常拋出函數(shù)異常捕獲函數(shù)異常捕獲所有異常從第一個catch語句開始比對,直到遇到與拋出異常類型一致,或是所拋出異常類的父類,便交由此catch語句處理
try{
ex.test("test");
}catch(myexceptione){
System.out.println(e.toString());
}catch(Exceptione){
System.out.println(e.toString());
}finally{}放在最后多線程程序:是一段靜態(tài)的代碼進(jìn)程:程序的動態(tài)執(zhí)行過程線程(Thread):
“進(jìn)程”中單一順序的控制流,處理器將其與其他線程同時運行多線程(multithreading):
計算機(jī)同時運行多個執(zhí)行線程的能力進(jìn)程主線程……線程2線程1程序加載單線程時間用戶程序服務(wù)器1服務(wù)器2請求1請求2結(jié)果1結(jié)果2多線程時間用戶程序服務(wù)器1服務(wù)器2請求1請求2結(jié)果1結(jié)果2實現(xiàn)線程方法繼承Thread類
實現(xiàn)了Runnable接口,直接定義Thread的子類比較方便,只要覆寫run方法,在這個方法里定義所要執(zhí)行的具體操作;實現(xiàn)Runnable接口
Runnable接口只定義了run接口方法,在類定義時實現(xiàn)run方法即可。Thread類創(chuàng)建對象Thread();//創(chuàng)建一個系統(tǒng)線程對象Thread(Runnabletarget);
//參數(shù)對象target中實現(xiàn)run方法來初始化Thread(Stringthreadname);//為新創(chuàng)建的線程對象制定名稱線程優(yōu)先級(1-10)
MIN_PRIORITY,代表最小優(yōu)先級,通常為1;
NORM_PRIORITY,代表普通優(yōu)先級,缺省為5;
MAX_PRIORITY,代表最高優(yōu)先級,通常為10。主要方法start():啟動線程,使之從新建狀態(tài)進(jìn)入就緒排隊狀態(tài)。run()
:定義線程操作,用戶程序需要定義run方法。sleep(intmillsecond):使線程暫時休眠。setPriority(intnewPrioriry):設(shè)置線程優(yōu)先級publicclassExample_thread{publicstaticvoidmain(Stringargs[]){ Lefthandleft=newLefthand(); Righthandright=newRighthand(); left.start(); right.start(); //right.setPriority(10); for(inti=1;i<=6;i++) System.out.println(i+"我是主線程");}}classLefthandextendsThread{ publicvoidrun(){ for(inti=1;i<=9;i++) System.out.println(i+"我是左手線程");}}classRighthandextendsThread{ publicvoidrun(){ for(inti=1;i<=9;i++) System.out.println(i+"我是右手線程");}}步驟:①覆寫run方法;②創(chuàng)建用戶線程實例;③調(diào)用start方法啟動線程。publicclassMythread1extendsThread{publicstaticints_count=0;privateStringm_name;Mythread1(Strings){m_name=s;}publicstaticintgetCount(){returns_count++;}
publicvoidrun(){while(s_count<100){System.out.println(m_name+":"+getCount());}}publicstaticvoidmain(String[]args){
newMythread1("first").start();newMythread1("second").start();newMythread1("third").start();}}123Runnable接口步驟:①實現(xiàn)run方法;②將該類對象作為參數(shù)創(chuàng)建類Thread的對象;③調(diào)用start方法啟動線程。publicclassMythread2
implementsRunnable{
publicstaticints_count=0;publicstaticintgetCount(){returns_count++;}
publicvoidrun(){while(s_count<100){System.out.println(Thread.currentThread().getName()+":"+getCount());}}
publicstaticvoidmain(String[]args){
newThread(newMythread2(),"first").start();
newThread(newMythread2(),"second").start();}}123線程生命周期新建就緒運行阻塞死亡新建:已創(chuàng)建,并被初始化,但尚未啟動;就緒:新建線程被啟動,進(jìn)入線程隊列排隊等待CPU時間片;運行:線程被調(diào)度并獲得CPU資源時,進(jìn)入運行狀態(tài),執(zhí)行run方法;阻塞:執(zhí)行的線程在特殊情況下,進(jìn)入阻塞狀態(tài),釋放CPU資源,直到引起阻塞的原因消除,而后轉(zhuǎn)入就緒狀態(tài),重新進(jìn)到線程隊列中排隊;死亡:線程全部執(zhí)行完畢或強(qiáng)制終止。阻塞狀態(tài)①sleep函數(shù)使線程進(jìn)入休眠,直到休眠時間結(jié)束轉(zhuǎn)為就緒;②suspend暫停線程,直到收到resume消息方可轉(zhuǎn)為就緒。③wait暫停線程,直到收到notify或notifyAll消息轉(zhuǎn)為就緒;④等待某個I/O動作完成;sleep方法classglobal
extendsThread{
publicvoid
run(
){
try{
Thread.sleep(1000);
}catch(Exceptione){
}
System.out.println("run");
}
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 江蘇省南京市第二十九中2026屆生物高三上期末檢測模擬試題含解析
- 2026年中央機(jī)關(guān)及其直屬機(jī)構(gòu)公務(wù)員考試行政職業(yè)能力測驗試題及答案
- 四川省成都市蓉城名校聯(lián)盟2026屆高三生物第一學(xué)期期末聯(lián)考試題含解析
- 初中化學(xué)溶液pH測定微型化實驗的實驗數(shù)據(jù)處理方法研究課題報告教學(xué)研究課題報告
- 小學(xué)生通過天文觀測記錄流星雨現(xiàn)象課題報告教學(xué)研究課題報告
- 2025至2030中國網(wǎng)絡(luò)文學(xué)IP全產(chǎn)業(yè)鏈開發(fā)與海外輸出策略研究報告
- 2025年應(yīng)急救援知識競賽試題(附答案)
- 2025年應(yīng)急管理試題庫及答案
- 2025至2030中國第三方檢測行業(yè)市場需求與投資可行性研究報告
- 高中運動員體能訓(xùn)練中的大數(shù)據(jù)挖掘應(yīng)用課題報告教學(xué)研究課題報告
- 工作照片拍攝培訓(xùn)課件
- 2025年海南三亞市吉陽區(qū)教育系統(tǒng)公開招聘編制教師122人(第1號)筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 2026年孝昌縣供水有限公司公開招聘正式員工備考題庫參考答案詳解
- 托管學(xué)校合作合同協(xié)議
- 2025年醫(yī)保局支部書記述職報告
- 世說新語課件
- 全體教師大會上副校長講話:點醒了全校200多名教師!毀掉教學(xué)質(zhì)量的不是學(xué)生是這7個環(huán)節(jié)
- T-CDLDSA 09-2025 健身龍舞彩帶龍 龍舞華夏推廣套路技術(shù)規(guī)范
- GB/T 46561-2025能源管理體系能源管理體系審核及認(rèn)證機(jī)構(gòu)要求
- GB/T 19566-2025旱地糖料甘蔗高產(chǎn)栽培技術(shù)規(guī)程
- 去極端化條例解讀課件
評論
0/150
提交評論