1.執行緒的生命週期
建立--就緒--執行--阻塞--死亡
2.執行緒基本狀態
新建狀態(new):thread t = new mythread();
就緒狀態(runnable):執行緒呼叫物件的start()方法(t.start()),表示即將進入就緒狀態。處於就緒狀態的執行緒,說明做好準備隨時等待cpu排程執行。
執行狀態(running):當cpu開始排程處於就緒狀態的執行緒時,此時執行緒才得以真正進入執行狀態。想要進入執行狀態,必須需要先進入就緒狀態。
阻塞狀態(blocked):處於執行狀態的執行緒由於某種原因,暫時放棄對cpu的使用,停止執行,此時進入阻塞狀態。
進入阻塞狀態接著會轉入就緒狀態。
死亡狀態(dead):執行緒執行完了或者因異常退出了run()方法,該執行緒結束生命週期。
3.執行緒建立的三種方式
1)繼承thread類,重寫該類的run()方法。
2)實現runnable介面,並重寫該介面的run()方法,該run()方法同樣是執行緒執行體,建立runnable實現類的例項,並以此例項作為thread類的target來建立thread物件,該thread物件才是真正的執行緒物件。
3)使用callable介面和future介面建立執行緒。
4)使用執行緒池例如用executor框架
4.多執行緒的安全
不安全的原因:在作業系統中,執行緒是不擁有資源的的,程序才會擁有資源。執行緒是由程序建立的,乙個程序可以建立多個執行緒,這些執行緒共享著程序裡面的資源。所以執行緒對共享資源進行利用時,可能造成資料不一致的情況,從而導致衝突。
解決思路:第一:給共享資源加一把鎖,每個共享資源只能被乙個執行緒占用。
第二:讓執行緒也擁有資源,不用去共享資源裡面去獲取
Java總結 執行緒(三)
多執行緒程式設計專題 使用管道流實現執行緒間資料傳輸 public class test1 catch ioexception e thread t1 new sender pout thread t2 new receiver pin t1.start t2.start class sender ...
Java多執行緒基礎知識
一 執行緒執行狀態 1.執行緒執行狀態圖 執行緒共包括以下5種狀態。1.新建狀態 new 執行緒物件被建立後,就進入了新建狀態。例如,thread thread new thread 2.就緒狀態 runnable 也被稱為 可執行狀態 執行緒物件被建立後,其它執行緒呼叫了該物件的start 方法,...
多執行緒基礎知識總結
1.什麼是執行緒 程式 程序 執行緒 協程 執行緒 簡單的說就是乙個程式裡面不同的執行路徑就是乙個執行緒 public class whatisthread catch interruptedexception e 當直接執行run方法不是由執行緒去排程的 因此是在同乙個main執行緒執行的 當呼叫...