Android中的線程有以下幾個生命周期:
新建狀態(New):線程對象已經創建,但還沒有調用start()方法。
就緒狀態(Runnable):調用了線程對象的start()方法后,線程進入就緒狀態,等待系統調度執行。此時線程并沒有真正開始執行,只是具備了執行的條件。
運行狀態(Running):線程被系統調度執行,開始執行線程的run()方法。
阻塞狀態(Blocked):線程在執行過程中,因為某種原因(如等待IO操作、獲取鎖等)暫時停止執行,并釋放CPU資源,進入阻塞狀態。在解除阻塞條件之前,線程將一直停留在該狀態。
等待狀態(Waiting):線程通過調用Object類的wait()方法或Thread類的join()方法,進入等待狀態。等待狀態下的線程需要其他線程的喚醒或者在等待指定時間內自動喚醒。
計時等待狀態(Timed Waiting):線程通過調用Thread類的sleep()方法、wait()方法等,進入計時等待狀態。與等待狀態不同的是,計時等待狀態下的線程可以在等待一定時間后自動喚醒。
終止狀態(Terminated):線程執行完run()方法、拋出未捕獲的異常或者調用了Thread類的stop()方法后,線程進入終止狀態。終止的線程不可再次啟動。