Alwaysblock1 組合邏輯always塊的使用,註意這裡的wire和reg綜合出來的結果是一樣的,這裡只是verilog語法導致二者聲明不一樣。 // synthesis verilog_input_version verilog_2001 module top_module( input ...
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