1.新建狀態
使用new關鍵字和thread類建立了乙個執行緒物件,該物件就處於新建狀態。
這個狀態一直保持到我們呼叫start()方法之前。
2.就緒狀態
當我們呼叫了start()方法,該執行緒就進入了就緒狀態.
就緒狀態的執行緒就會處於就緒佇列中,要等到jvm中的執行緒排程器進行排程。
3.執行狀態
就緒狀態的執行緒獲取到了cpu的資源,就可以執行run()了,此時執行緒處於執行狀態。
執行狀態的執行緒是最複雜的,因為它可以變為阻塞狀態還能變成死亡狀態。
4.阻塞狀態
如果乙個執行緒呼叫sleep()、掛起方法,就失去了占用資源,這時候執行緒就從執行狀態進入阻塞狀態。
有三種情況會進入阻塞狀態:
等待阻塞:執行狀態的執行緒執行了wait()方法,執行緒就進入了等待阻塞
同步阻塞: 執行緒在獲取synchronized同步鎖失敗(因為同步鎖被其他執行緒占用)
其他阻塞: 比如通過呼叫執行緒sleep()或者 join() 發出 i/o 請求的時候,執行緒就會進入阻塞狀態。
5.死亡狀態
乙個執行狀態的執行緒完成任務或者其他終止條件發生了,該執行緒就終止了。
執行緒生命週期
今天看到一段這樣的 handle hthread createthread null,0,add,a,0,null hmutext createmutex null,false,l huchiti closehandle hthread 簡單的說,關閉了執行緒控制代碼 關閉了執行緒,其兩者的生命週期...
執行緒生命週期
本章目標 了解執行緒的生命週期 了解執行緒的停止操作 執行緒的生命週期 注意大部分的執行緒生命週期的方法基本上都已經學過了,那麼在這裡有以下三個新方法 suspend 方法 暫時掛起執行緒 resume 方法 恢復掛起的執行緒 stop 方法 停止執行緒 但是對於執行緒中suspend resume...
執行緒生命週期
執行緒的生命週期分為五種狀態 新建狀態 就緒狀態 執行狀態 阻塞狀態 死亡狀態 剛new出來的執行緒物件。新建狀態呼叫start 方法就進入就緒狀態。就緒狀態的執行緒又叫做可執行狀態,表示當前執行緒具有搶奪cpu時間片的權利 cpu時間片就是執行權 當乙個執行緒搶奪到cpu時間片之後就開始執行run...