四 執行緒的生命週期

2022-02-09 18:41:25 字數 904 閱讀 1509

前言:

之前我們學習了關於現成的建立的方式,和執行緒池方面的只是,那麼我們來向再想一下關於乙個執行緒從建立到銷毀,都經歷了哪些階段,下面來看一下網上的一張,關於執行緒從建立到銷毀生命週期的問題:

一、新建階段:

在我們用new關鍵字建立了乙個執行緒後,這個執行緒就處於新建狀態,jvm會為執行緒分配記憶體空間,初始化成員變數

二、就緒階段:

當我們建立的執行緒物件呼叫了start()方法後,該執行緒就處於就緒階段,jvm會為計數器和方法棧,等待執行緒排程器呼叫。

三、執行狀態:

就緒狀態的執行緒獲取到了cpu資源,開始執行run()或call()方法,則該執行緒進入執行狀態。

四、阻塞狀態:

當乙個執行緒正在執行時,如果發生異常或者呼叫某些方法會使執行緒進入阻塞狀態,具體有以下:

1、執行緒呼叫sleep()方法,主動放棄所占用的處理器資源。

2、執行緒在等待某個通知時(notify())。

2、執行緒呼叫了乙個阻塞式io方法,在該方法返回之前都會被阻塞。

3、執行緒試圖獲取乙個同步鎖,但該同步鎖正在被其他執行緒所擁有的。

4、程式呼叫了suspend()方法將執行緒掛起,但這個方法容易造成死鎖,不推薦使用。

五、死亡狀態:

執行緒在以下情況下會進入死亡狀態:

1、run()、call()執行完成後,執行緒正常結束

2、執行緒丟擲了乙個未捕獲的exception或err

3、代用了該執行緒的stop()方法來結束執行緒,該方法容易導致死鎖不推薦。

執行緒生命週期

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