多線程的概念_第1頁
全文預覽已結束

下載本文檔

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

文檔簡介

1、多線程的概念2、進程:程序的一次動態執行過程,它對應從代碼加載、執行到執行完畢的一個完整過程。 3、進程也稱任務,支持多個進程同時執行的os就被稱為多進程os或多任務os。 二、進程與線程 在一個程序內部也可以實現多個任務并發執行,其中每個任務稱為線程。 線程是比進程更小的執行單位,它是在一個進程中自立的控制流,即程序內部的控制流。 特點:線程不能自立運行,必需依靠于進程,在進程中運行。 每個程序起碼有一個線程稱為主線程。 單線程:惟獨一條線程的進程稱為單線程 多線程:有不止一個線程的進程稱為多線程 三、開啟多線程的優點和缺點 提高界面程序響應速度。通過用法線程,可以將需要大量時光完成的流程在

2、后臺啟動單獨的線程完成,提高前臺界面的相應速度。 充分利用系統資源,提高效率。通過在一個程序內部同時執行多個流程,可以充分利用cpu等系統資源,從而最大限度的發揮硬件的性能。 當程序中的線程數量比較多時,系統將花費大量的時光舉行線程的切換,這反而會降低程序的執行效率。但是,相對于優勢來說,劣勢還是很有限的,所以現在的項目開發中,多線程編程技術得到了廣泛的應用。 13.2 多線程實現 一、在實現線程編程時,首先需要讓一個類具備多線程的能力,繼承thread類或實現runnable接口的類具備多線程的能力,然后創建線程對象,調用對應的啟動線程辦法即可實現線程編程。 在一個程序中可以實現多個線程,多

3、線程編程指在同一個程序中啟動了兩個或兩個以上的線程。 在實際實現線程時,java語言提供了三種實現方式: (1)繼承thread類 (2)實現runnable接口 (3)用法timer和timertask組合 二、繼承thread線程類實現多線程 java.lang包中提供了一個特地的線程類(thread),在該類中封裝了許多對線程舉行調度和處理的辦法。假如一個類繼承了thread類,則該類就具備了多線程的能力,可以多線程的方式執行。 class mythread tends thread public vo run() /線程體 繼承thread類實現多線程。 mythread tt1 =

4、new mythread (); /啟動線程 tt1.start(); y for(int i = 0;i i ) /延時1秒 thread.(1000); system.out.print( main: i); ch(exception e) 注重: 線程的特性:隨機性,系統在執行多線程程序時只保證線程是交替執行的,至于哪個線程先執行哪個線程后執行,則無法獲得保證,需要書寫特地的代碼才可以保證執行的挨次。 對于同一個線程類,也可以啟動多個線程 同一個線程不能啟動兩次, 當自定義線程中的run辦法執行完成以后,則自定義線程自然死亡。而對于系統線程來說,惟獨當main辦法執行結束,而且啟動的其它

5、線程都結束以后,才會結束。當系統線程執行結束以后,程序的執行才真正結束。 三、 實現runable接口 a) 多線程對象實現java.lang.runnable接口并且在該類中重寫runnable接口的run辦法。 b) 益處:實現runable接口的辦法避開了單繼承的局限性。 例1:用法實現runable接口的方式實現多線程。 class mythread2 implements runable public void run() /重寫runable接口中的run()辦法 mythread2 mt1=new mythread2(); thread t1=new thread(mt1); t

6、1.start(); 13.3 線程的生命周期 一、線程的生命周期 線程是一個動態執行的過程,它也有一個從產生到死亡的過程,這就是所謂的生命周期。一個線程在它的生命周期內有5種狀態: 1、新建(new thread) 當創建thread類的一個實例(對象)時,此線程進入新建狀態(未被啟動)。 例如:thread t1=new thread(); 2、就緒(runnable) 線程已經被啟動,正在等待被分配給cpu時光片,也就是說此時線程正在就緒隊列中排隊迎候得到cpu資源。例如:t1.start(); 3、運行(running) 線程獲得cpu資源正在執行任務(run()辦法),此時除非此線程自動放棄cpu資源或者有優先級更高的線程進入,線程將向來運行到結束。 4、死亡(dead) 當線程執行完畢或被其它線程殺死,線程就進入死亡狀態,這時線程不行能再進入就緒狀態等待執行。 自然終止:正常運行run()辦法后終止 異樣終止:調用stop()辦法讓一個線程終止運行 5、阻塞(block) 因為某種緣由導致正在運行的線程讓出cpu并暫停自己的執行,即進入阻塞狀態。 正在睡眠:用sleep(long t) 辦法可使線程進入睡眠方式。一個睡眠著的線程在指定的時光過去可進入就緒

溫馨提示

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

評論

0/150

提交評論