JVM中的行程和執行緒
介紹
一個行程可以有很多個執行緒,行程之間基本上都是獨立的,但是同一行程中的不同執行緒很可能會相互影響,每個執行緒有自己的程式計數器、虛擬機堆疊和本地方法堆疊,
行程的幾種狀態
- 創建狀態(New): 行程剛剛被創建,
- 就緒狀態(Ready): 行程已經準備運行,此時行程在等待處理器資源,除了處理資源以外所需要的資源已經全部獲得,準備完畢,一旦處理器分配資源,即會立即運行,
- 運行狀態(Running): 行程正在運行,
- 等待狀態(Waiting): 又稱為阻塞狀態,行程目前暫停運行,等待某一事件完成,例如等待I/O請求,
- 結束狀態(Terminated): 行程結束,可能是出現錯誤、人為終止、正常結束或者被系統終止,進入結束狀態,
執行緒的幾種狀態
-
新建狀態(New): 新創建的執行緒物件,
-
就緒狀態(Runnable): 該執行緒處于可運行的狀態,等待CPU分配資源,
-
運行狀態(Running): 執行緒正在運行,
-
阻塞狀態(Blocked): 執行緒暫時停止運行,重新進入就緒狀態后,再次獲得CPU資源才會進入運行狀態,
阻塞狀態分為三種:同步阻塞、等待(wait)阻塞、其他阻塞
同步阻塞: 多個執行緒獲取物件的同步鎖是,如果該鎖被其他執行緒占用,JVM就會把其他執行緒放入鎖池中等待,
等待(wait)阻塞:執行緒呼叫wait()方法,該執行緒會釋放資源,進入阻塞狀態,并且是不能自己喚醒的,需要其他執行緒呼叫notify()或者notifyAll()方法才會被喚醒,
其他阻塞: 例如sleep或者join造成的阻塞,
-
死亡狀態(Dead):執行緒執行結束或者例外退出run()方法,執行緒結束,
關注微信公眾號「平哥技術站」, 每日更新,在手機上閱讀所有教程,隨時隨地都能學習,
原文鏈接:https://monkey.blog.xpyvip.top/archives/jvm-zhong-de-jin-cheng-he-xian-cheng
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/519128.html
標籤:其他
上一篇:【HDLBits刷題日記】04 Procedures
下一篇:day52-正則運算式03
