執行緒的生命週期

2021-10-04 11:30:13 字數 511 閱讀 2310

1.初始狀態: new thread 沒有執行start()時

2.就緒狀態:獲取所有資源,等待獲取cpu執行權時(執行start()後)

3.執行狀態:就緒狀態獲取cpu執行權時

4.阻塞狀態:處於執行狀態中的執行緒由於某種原因,暫時放棄對cpu的使用權

5.死亡狀態:執行緒執行完或者因異常退出run()結束生命週期

就緒狀態轉換為執行狀態:當此執行緒得到處理器資源;

執行狀態轉換為就緒狀態:當此執行緒主動呼叫yield()方法或在執行過程中失去處理器資源。

執行狀態轉換為死亡狀態:當此執行緒執行緒執行體執行完畢或發生了異常。

此處需要特別注意的是:當呼叫執行緒的yield()方法時,執行緒從執行狀態轉換為就緒狀態,但接下來cpu排程就緒狀態中的哪個執行緒具有一定的隨機性,因此,可能會出現a執行緒呼叫了yield()方法後,接下來cpu仍然排程了a執行緒的情況。

執行緒生命週期

今天看到一段這樣的 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...