Java虚拟机(七)
来源:互联网 发布:hadoop 数据倾斜 编辑:程序博客网 时间:2024/05/23 13:38
本地方法栈
当一个线程调用native方法时,它就进入了一个不受java虚拟机限制的世界。它可以使用本地处理器的寄存器,在任何数量的本地堆上分配内存或者使用任意类型的栈。
本地方法接口会使用某种类型的本地方法栈,当线程调用java方法时,虚拟机创建一个帧并把它push到java栈中,当线程调用natvie方法时,线程不会将新的帧push到线程的java栈中,java虚拟机会只是动态连接到native方法并直接调用它。
一个本地方法可能会调用一个java方法,在这种情况下,线程会离开本地方法栈并且进入另一个java栈中。下图描述了线程调用一个native方法,然后在native方法中回调另一个java方法。
上图中,线程调用了两个java方法,第二个java方法调用了一个native方法。这个动作会引起虚拟机使用一个本地方法栈,在这个图中,本地方法栈以一个有限数量的连续内存空间呈现。假定他是一个c栈,每个c链接函数用以灰色呈现,并且以虚线作为分割。第一个c链接函数作为一个native方法被调用,它调用了另一个c链接函数。第二个c链接函数通过native方法接口调用了java方法。然后这个java方法又调用了另一个java方法,也就是图中所示的当前方法。
0 0
- Java虚拟机(七)
- Java虚拟机(七)
- JAVA虚拟机系列(七)
- Java虚拟机(七)虚拟机字节码执行引擎
- 深入理解java虚拟机(七)类加载的时机
- Java虚拟机(七)-JVM内存模型总结
- 深入理解Java虚拟机----(七)字节码执行引擎
- 深入java虚拟机(七)--Javac编译与JIT编译
- Java虚拟机--判断可触及性(七)
- 深入理解Java虚拟机读书笔记七
- 深入java虚拟机(七)深入源码看java类加载器ClassLoader
- 深入理解java虚拟机(七):java垃圾收集分析总结
- 深入java虚拟机(七)深入源码看java类加载器ClassLoader
- 深入理解java虚拟机(七):java垃圾收集分析总结
- 《深入理解JAVA虚拟机》学习笔记(七)JAVA多态的实现:动态分派
- Java垃圾收集算法—深入理解Java虚拟机(七)
- jdk源码解析(七)——Java虚拟机类加载机制
- 【深入Java虚拟机】之七:Java编译与JIT编译
- 黑马程序员_GUI
- sizeof 和 strlen 有趣的操作
- 图像处理和图像识别中常用的OpenCV函数
- SM2密码算法应用分析
- 打开电脑出现程序错误
- Java虚拟机(七)
- 黑马程序员_集合(一)_List、Set
- const
- C++箭头(->)运算符的重载
- 第二周作业:计算圆的面积!
- SetThreadAffinityMask设置使用多核CPU的哪个核心
- 黑马程序员_集合(二)_Map
- 程序在的内存中的分配(常量,局部变量,全局变量,程序代码)
- 交换变量