Java Virtual Machine Stacks(虚拟机栈)
生活随笔
收集整理的這篇文章主要介紹了
Java Virtual Machine Stacks(虚拟机栈)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
經過上面的分析,類加載機制的裝載過程已經完成,后續的鏈接,初始化也會相應的生效。
假如目前的階段是初始化完成了,后續做啥呢?肯定是Use使用咯,不用的話這樣折騰來折騰去有什么意義?那怎樣才能被使用到?換句話說里面內容怎樣才能被執行?比如通過主函數main調用其他方法,這種方式實際上是main線程執行之后調用的方法,即要想使用里面的各種內容,得要以線程為單位,執行相應的方法才行。
那一個線程執行的狀態如何維護?一個線程可以執行多少個方法?這樣的關系怎么維護呢?
虛擬機棧是一個線程執行的區域,保存著一個線程中方法的調用狀態。換句話說,一個Java線程的運行狀態,由一個虛擬機棧來保存,所以虛擬機??隙ㄊ蔷€程私有的,獨有的,隨著線程的創建而創建。
每一個被線程執行的方法,為該棧中的棧幀,即每個方法對應一個棧幀。
調用一個方法,就會向棧中壓入一個棧幀;一個方法調用完成,就會把該棧幀從棧中彈出。
Each Java Virtual Machine thread has a private Java Virtual Machine stack, created at the same time as the thread. A Java Virtual Machine stack stores frames (§2.6).畫圖理解棧和棧幀
?
總結
以上是生活随笔為你收集整理的Java Virtual Machine Stacks(虚拟机栈)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Heap(堆)
- 下一篇: The pc Register(程序计数