溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java線程有幾種狀態?

發布時間:2020-05-15 17:53:48 來源:億速云 閱讀:254 作者:Leah 欄目:編程語言

今天小編就為大家帶來一篇有關java線程狀態的文章。小編覺得知識點挺全面的,為此分享給大家做個參考。一起跟隨小編過來看看吧。

1、NEW

該狀態是指線程剛創建,尚未啟動。

2、RUNNABLE

表示線程正在正常運行中,當然可能會有某種耗時計算/IO等待的操作/CPU時間片切換等,這個狀態下發生的等待一般是其他系統資源,而不是鎖、Sleep等。

3、BLOCKED

此狀態下,是在多個線程有同步操作的場景,比如正在等待另一個線程的synchronized 塊的執行釋放,或者可重入的 synchronized塊里別人調用wait() 方法,也就是說這里是線程在等待進入臨界區。

4、WAITING

這個狀態下是指線程擁有了某個鎖之后, 調用了他的wait方法, 等待其他線程/鎖擁有者調用 notify / notifyAll 一遍該線程可以繼續下一步操作。

這里要區分 BLOCKED 和 WATING 的區別,一個是在臨界點外面等待進入, 一個是在理解點里面wait等待別人notify, 線程調用了join方法 join了另外的線程的時候, 也會進入WAITING狀態, 等待被他join的線程執行結束。

5、TIMED_WAITING

這個狀態就是有限的(時間限制)的WAITING, 一般出現在調用wait(long)、join(long)等情況下, 另外一個線程sleep后, 也會進入TIMED_WAITING狀態。

6、TERMINATED

這個狀態下表示該線程的run方法已經執行完畢了, 基本上就等于死亡了(當時如果線程被持久持有, 可能不會被回收)。

看完上述內容,你們對java線程的幾種狀態大概了解了嗎?如果想了解更多相關文章內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女