多線程 進程:一個獨立執行的程式;正在運行的程式。 線程:一個進程中有多個執行單元同時運行,一個執行單元即一個線程。 Java提供兩種多線程實現方式:1)繼承java.lang包下的Thread類,覆寫Thread類的run()方法,在run()方法中實現運行線上程上的代碼; 局限性:由於Java中 ...
多線程
進程:一個獨立執行的程式;正在運行的程式。
線程:一個進程中有多個執行單元同時運行,一個執行單元即一個線程。
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)。通過一些操作,可使線程在不同狀態之間轉換。