1. 程式人生 > 其它 >5┃音視訊直播系統之 WebRTC 中的協議UDP、TCP、RTP、RTCP詳解

5┃音視訊直播系統之 WebRTC 中的協議UDP、TCP、RTP、RTCP詳解

執行緒的狀態
執行緒的狀態:也就是執行緒從生到死的過程,以及中間經歷的各種狀態及狀態轉換。
理解執行緒的狀態有利於提升併發程式設計的理解能力。

Java執行緒的狀態
Java總共定義了6種狀態
6種狀態都定義在Thread類的內部列舉類中。

public class Thread{
     ...     
    public enum State {    	
        NEW,    	
        RUNNABLE,    	
        BLOCKED,    	
        WAITING,    	
        TIMED_WAITING,    	
        TERMINATED;
    }
     ...
}
                    

執行緒的6種狀態總結

NEW(新建)
執行緒剛被建立,但是並未啟動。
Runnable(可執行)
執行緒已經呼叫了start()等待CPU排程
Blocked(鎖阻塞)
執行緒在執行的時候未競爭到鎖物件,則該執行緒進入Blocked狀態;。
Waiting(無限等待)
一個執行緒進入Waiting狀態,另一個執行緒呼叫notify或者notifyAll方法才能夠喚醒
Timed Waiting(計時等待)
同waiting狀態,有幾個方法有超時引數,呼叫他們將進入Timed Waiting狀態。帶有超時引數的常用方法有Thread.sleep 、Object.wait。
Teminated(被終止)
因為run方法正常退出而死亡,或者因為沒有捕獲的異常終止了run方法而死亡。

新建狀態( NEW ) 建立執行緒物件

就緒狀態( RUNNABLE ) start方法

阻塞狀態( BLOCKED ) 無法獲得鎖物件

等待狀態( WAITING ) wait方法

計時等待( TIMED_WAITING ) sleep方法

結束狀態( TERMINATED ) 全部程式碼執行完畢