java Thread的狀態分析
執行緒的狀態是比較重要的,因此threadump顯示這些狀態,透過分析這些狀態,可以得到執行緒的執行狀況,發現可能存在的問題。
1、NEW
每個執行緒,在堆記憶體中都有相應的Thread物件。Threadt=newThread();當Thread物件剛剛在堆記憶體中建立時,在呼叫t.start()方法之前,執行緒處於NEW狀態。就這種狀態而言,執行緒與一般java物件沒有什麼不同,只是一個堆記憶體物件。
2、RUNNABLE
這種狀態意味著執行緒具有所有的執行條件,並在執行佇列中準備作業系統的排程或執行。這種狀態下的執行緒相對正常,但是如果執行緒長時間停留在這種狀態下,就不正常了,這表明執行緒執行的時間很長(有效能問題),或者執行緒不能一直執行(有執行緒飢餓問題)。
3、BLOCKED
執行緒等待獲得java物件的監視器(也稱為內建鎖),即執行緒等待進入synchronized保護的方法和程式碼塊。synchronized用於保證原子性,任何時候最多隻能從一個執行緒進入該臨界區域,其他執行緒只能排隊等待。
4、WAITING
處於執行緒狀態,等待事件的發生。只有滿足特定條件,才能獲得執行機會。這個特定的事件通常是另一個執行緒。也就是說,如果沒有特定的事件,那麼處於這種狀態的執行緒一直在等待,無法獲得執行的機會。
5、TIMED_WAITING
在J.U.C中,許多與執行緒相關的類別,都提供了限時版和無限時版的API。TIMED_WAITING意味著執行緒呼叫了限時版的API,等待時間流逝。等待時間過後,執行緒也可以恢復執行。若執行緒進入WAITING狀態,則必須發生特定事件才能恢復執行;而在TIMED_WAITING的執行緒中,如果發生特定事件或時間流逝,則恢復執行。
6、TERMINATED
當執行緒執行完成後,run方法正常返回,或丟擲執行異常而結束時,執行緒將停留在此狀態。此時執行緒只剩下Thread物件,沒什麼用。
以上就是java Thread的狀態分析,希望對大家有所幫助。更多Java學習指路:
本教程操作環境:windows7系統、java10版,DELL G3電腦。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2331/viewspace-2830045/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 4-Thread類詳解與執行緒的狀態分析thread執行緒
- java執行緒的狀態+鎖分析Java執行緒
- 如何分析java Thread DUMPJavathread
- Java執行緒的狀態Java執行緒
- Java序列化的狀態Java
- 面經手冊 · 第20篇《Thread 執行緒,狀態轉換、方法使用、原理分析》thread執行緒
- java執行緒的五大狀態,阻塞狀態詳解Java執行緒
- Java多執行緒3:Thread中的靜態方法Java執行緒thread
- MySQL 分析伺服器狀態MySql伺服器
- Java 執行緒的5種狀態Java執行緒
- 【Java】執行緒的 6 種狀態Java執行緒
- JAVA 執行緒的幾種狀態Java執行緒
- java狀態模式例項解析Java模式
- Java Hibernate 之 Session 狀態JavaSession
- Java多執行緒之Thread原始碼分析Java執行緒thread原始碼
- Flutter State Management狀態管理全面分析Flutter
- Java多執行緒(04)執行緒狀態與上線文切換以及Thread方法介紹Java執行緒thread
- hibernate中po物件的三種狀態分析物件
- Java執行緒狀態轉換Java執行緒
- 從狀態模式看 JavaScript 與 Java模式JavaScript
- Java設計模式之狀態模式Java設計模式
- java--執行緒狀態【轉】Java執行緒
- 有狀態和無狀態的區別
- 三個例項演示 Java Thread Dump 日誌分析Javathread
- BlueStore原始碼分析之事物狀態機原始碼
- oracle日誌狀態為STALE案例分析Oracle
- 詳解Java執行緒池的ctl(執行緒池控制狀態)【原始碼分析】Java執行緒原始碼
- Flutter 狀態管理之 Redux,BLoC,Provider 的流程分析FlutterReduxBloCIDE
- 自動查詢並分析快遞的物流狀態
- Java | 靜態巢狀類(Static Nested Class)Java巢狀
- Java執行緒狀態及切換Java執行緒
- Java執行緒狀態及同步鎖Java執行緒
- java執行緒棧狀態詳解Java執行緒
- Java應用異常狀態監測Java
- 利用btrace線上監控java程式狀態Java
- Java Thread in JVM (轉)JavathreadJVM
- Flutter狀態管理Provider(二)過程分析FlutterIDE
- Flutter 狀態管理框架 Provider 和 Get 分析Flutter框架IDE