Java多執行緒相關知識

俊傑17607發表於2018-12-27

多執行緒

程式:一個獨立執行的程式;正在執行的程式。

執行緒:一個程式中有多個執行單元同時執行,一個執行單元即一個執行緒。

Java提供兩種多執行緒實現方式:1)繼承java.lang包下的Thread類,覆寫Thread類的run()方法,在run()方法中實現執行線上程上的程式碼;

侷限性:由於Java中只支援單繼承,一個類一旦繼承了某個父類就無法再繼承Thread類。

為了克服這種弊端,Thread類提供了另外一個構造方法Thread(Runnable target),其中Runnable是一個介面,它只有一個run()方法。當通過該構造方法建立執行緒物件時,只需為該方法傳遞一個實現了Runnable介面的例項物件。Thread(Runnable target,String name)方法在建立執行緒物件的同時指定執行緒的名稱。

2)實現java.lang.Runnable介面,同樣在run()方法中實現執行線上程上的程式碼。適合多個相同程式程式碼去處理同一個資源的情況;可避免Java的單繼承帶來的侷限性。

後臺執行緒。前臺執行緒死亡後,JVM會通知後臺執行緒,後臺執行緒執行一會兒結束,說明程式中只有後臺執行緒執行時,程式就會結束。將某個執行緒設定為後臺執行緒的方法setDaemon(true)。

   

執行緒的生命週期及狀態轉換。五個階段,新建狀態(New),就緒狀態(Runnable),執行狀態(Running),阻塞狀態(Blocked),死亡狀態(Terminated)。通過一些操作,可使執行緒在不同狀態之間轉換。

相關文章