執行緒Thread的生命週期以及狀態

2021-07-03 12:40:50 字數 633 閱讀 3261

由於早上沒有網,所以幾篇寫好的部落格就一起發啦。

執行緒的生命週期以及狀態的圖大體上如下:

其實:從這個圖中已經大體上能夠的獲取到執行緒的生命週期以及狀態了,但是還是詳細的說下吧:

首先是通過new thread()方法例項化乙個新執行緒,然後改執行緒的物件呼叫start()方法,此時執行緒轉入到就緒狀態並且等待cpu的排程,可能不是馬上就排程到此執行緒的,這和cpu的輪詢策略有關,例如時間片輪詢策略。

執行緒執行,執行run方法,如果中途沒被其他操作執行緒的方法操作的話,那麼run方法執行完畢,執行緒死亡。

如果當前執行緒執行了yeild方法,當前執行緒進入到就緒狀態,並讓出cpu的控制權,cpu執行別的執行緒。

如果在run方法中,當前執行緒執行了wait()方法,使當前執行緒暫停,當前執行緒進入等待狀態,在其他執行緒呼叫此物件的 notify() 方法或者 notifyall()方法,該執行緒進入阻塞狀態,因為是在同步塊中進行的,所以要等待當前資源釋放資源,然後進入解鎖,到就緒狀態。

如果是執行緒加了同步鎖的話,該執行緒對資源獨享,其它執行緒想操作此資料,將進入到阻塞狀態,知道同步鎖的執行緒操作完資源,進行解鎖,從而轉入到就緒狀態。

Thread的生命週期

不同的位置建立,生命週期自然是不同的 1.在activity中被建立 一般在oncreate時建立,在ondestroy 中銷毀,否則,activity銷毀後,thread是會依然在後台執行著。這種情況下,thread的生命週期即為整個activity的生命週期。所以,在activity中建立的th...

執行緒生命週期

今天看到一段這樣的 handle hthread createthread null,0,add,a,0,null hmutext createmutex null,false,l huchiti closehandle hthread 簡單的說,關閉了執行緒控制代碼 關閉了執行緒,其兩者的生命週期...

執行緒生命週期

本章目標 了解執行緒的生命週期 了解執行緒的停止操作 執行緒的生命週期 注意大部分的執行緒生命週期的方法基本上都已經學過了,那麼在這裡有以下三個新方法 suspend 方法 暫時掛起執行緒 resume 方法 恢復掛起的執行緒 stop 方法 停止執行緒 但是對於執行緒中suspend resume...