java語言程序設計_第1頁
java語言程序設計_第2頁
java語言程序設計_第3頁
java語言程序設計_第4頁
java語言程序設計_第5頁
已閱讀5頁,還剩18頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、java語言程序設計Java語言程序設計語言程序設計第7章 多線程與異常處理編著:張思民編著:張思民 java語言程序設計第第7章多線程與異常處理章多線程與異常處理1、多線程的概念、多線程的概念2、線程的使用、線程的使用3、線程同步、線程同步4、異常處理、異常處理java語言程序設計7.1 多線程的概念多線程的概念1、線程與多線程、線程與多線程2、線程的生命周期、線程的生命周期3、線程的優(yōu)先級、線程的優(yōu)先級java語言程序設計1、線程與多線程、線程與多線程 什么是線程什么是線程java語言程序設計 進程與多線程的區(qū)別進程與多線程的區(qū)別java語言程序設計Java的多線程機制的多線程機制 在在J

2、ava編程中,每實例化一個線程對象,編程中,每實例化一個線程對象,就創(chuàng)建一個虛擬的就創(chuàng)建一個虛擬的CPU,由虛擬,由虛擬CPU處理處理本線程數(shù)據(jù)。本線程數(shù)據(jù)。 每個每個Java程序都有一個主線程,即由程序都有一個主線程,即由main()方法所對應的線程。對于方法所對應的線程。對于applet,瀏覽器即是主線程。瀏覽器即是主線程。 除主線程外,線程無法自行啟動,必須通除主線程外,線程無法自行啟動,必須通過其他程序來啟動它。過其他程序來啟動它。java語言程序設計2、線程的生命周期、線程的生命周期 線程要經(jīng)歷創(chuàng)線程要經(jīng)歷創(chuàng)建、就緒、運建、就緒、運行、阻塞和死行、阻塞和死亡等亡等5個狀態(tài)個狀態(tài) ,稱

3、為生命周期。稱為生命周期。java語言程序設計7.2 線程的使用方法線程的使用方法 1、創(chuàng)建、創(chuàng)建Thread子類構造線程子類構造線程 2、實現(xiàn)、實現(xiàn)Runnable接口構造線程接口構造線程 基本方法:基本方法:創(chuàng)建線程類,再用其他類調(diào)用線程創(chuàng)建線程類,再用其他類調(diào)用線程。java語言程序設計1、創(chuàng)建、創(chuàng)建Thread子類構造線程子類構造線程 線程的創(chuàng)建與啟動線程的創(chuàng)建與啟動(1)創(chuàng)建一個)創(chuàng)建一個Thread類的子類;類的子類;(2)在子類中重新定義自己的)在子類中重新定義自己的run()方法,方法,這個中包含了線程要實現(xiàn)的操作;這個中包含了線程要實現(xiàn)的操作;(3)用關鍵字)用關鍵字new

4、創(chuàng)建一個線程對象;創(chuàng)建一個線程對象;(4)調(diào)用)調(diào)用start()方法啟動線程。方法啟動線程。java語言程序設計示例示例【例例7-1】創(chuàng)建二個創(chuàng)建二個Thread類的子類,然后類的子類,然后測試它。測試它。 (見教材見教材P205)java語言程序設計這個例子說明了這樣幾個事實:這個例子說明了這樣幾個事實:(1)創(chuàng)建獨立執(zhí)行線程比較容易,創(chuàng)建獨立執(zhí)行線程比較容易,Java負責處負責處理了大部分細節(jié)。理了大部分細節(jié)。 (2)各線程并發(fā)運行,共同爭搶各線程并發(fā)運行,共同爭搶CPU資源,資源,線程搶奪到線程搶奪到CPU資源后,就開始執(zhí)行,無資源后,就開始執(zhí)行,無法準確知道某線程能在什么時候開始執(zhí)行

5、。法準確知道某線程能在什么時候開始執(zhí)行。 (3)線程間的執(zhí)行是相互獨立的。線程間的執(zhí)行是相互獨立的。 (4)線程獨立于啟動它的線程(或程序)。線程獨立于啟動它的線程(或程序)。java語言程序設計2、 實現(xiàn)實現(xiàn)Runnable接口構造線程接口構造線程 1、實現(xiàn)、實現(xiàn)Runnable接口接口2、定義、定義run( )方法方法 3、構造線程:、構造線程:Thread(Runnable對象名對象名); 4、啟動線程:線程對象、啟動線程:線程對象.start( );java語言程序設計示例示例 【例例7-2】 創(chuàng)建一個實現(xiàn)創(chuàng)建一個實現(xiàn)Runnable接口接口的線程類。的線程類。(見見教材教材P205)

6、java語言程序設計二種線程方式的用法區(qū)別二種線程方式的用法區(qū)別 用多線程設計一個模用多線程設計一個模擬火車站售票大廳的擬火車站售票大廳的工作情形工作情形 java語言程序設計1、應用線程的子類 class Sale extends Thread int s=100; public void run() System.out.println(getName() + 售機票第售機票第 + s- +號號); class E3public static void main(String args) Sale t1=new Sale();t1.start();java語言程序設計2、應用Runnale

7、接口 class Threadsale implements Runnable int tickets=100 ;public void run(). public class E9_4public static void main(String args) Threadsale t=new Threadsale(); /實例化線程 Thread t1=new Thread (t,第1售票窗口); Thread t2=new Thread (t,第2售票窗口); Thread t3=new Thread (t,第3售票窗口); Thread t4=new Thread (t,第4售票窗口);

8、t1.start(); t2.start(); t3.start(); t4.start(); java語言程序設計線程的暫停和恢復線程的暫停和恢復 sleep()方法方法該方法指定線程休眠一段時間。如下面該方法指定線程休眠一段時間。如下面語句所示:語句所示:Thread thread1 = new Thread();thread1.start();try thread1.sleep(2000); catch(InterruptedException e) java語言程序設計7.4異常處理異常處理 異常(異常(Exception)指程序運行過程中出)指程序運行過程中出現(xiàn)的非正?,F(xiàn)象現(xiàn)的非正常

9、現(xiàn)象. 在在Java中,把異常分為錯誤(中,把異常分為錯誤(Error)與)與異常(異常(Exception)兩大類。)兩大類。 異常情況(異常情況(ExceptionException)表示另外一種)表示另外一種“非同尋常非同尋常”的錯誤。這種錯誤通常是不的錯誤。這種錯誤通常是不可預測的。常見的異常情況包括內(nèi)存不足,可預測的。常見的異常情況包括內(nèi)存不足,找不到所需的文件等。找不到所需的文件等。 系統(tǒng)異常見系統(tǒng)異常見P225 P225 表表7.17.1java語言程序設計異常處理異常處理 try 可能出現(xiàn)異常的程序代碼可能出現(xiàn)異常的程序代碼 catch(異常類異常類1變量變量1) 異常類異常類1對應的異常處理代碼對應的異常處理代碼catch(異常類異常類2變量變量2) 異常類異常類2對應的異常處理代碼對應的異常處理代碼 .finally 無論異常是否發(fā)生都要執(zhí)行的代碼無論異常是否發(fā)生都要執(zhí)行的代碼 java語言程序設計異常示例:異常示例: class A public static void main(String args) int a=20,b=0;try System.out.println(a/

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論