文章目录
1、Native Method Stack 的定义
Native Method Stack (本地方法栈) 是用于管理 Native Method (本地方法)的调用。
注: Native Method (本地方法) 主要是用 C 、C++ 实现的。
Native Method Stack ,是线程私有的。
2、Native Method Stack 的使用
Native Method Stack 登记 native 方法,在 Execution Engine (执行引擎)执行时加载 Native Method Library (本地方法库)。
3、Native Method Stack 的异常
Native Method Stack 允许被设置成 固定 或者 动态扩展 的内存大小。
-
如果线程请求分配的栈容量 超过 Native Method Stack 允许的最大容量,java 虚拟机将会抛出一个
StackOverflowError异常。 -
如果 Native Method Stack 是动态扩展的,并且在尝试扩展的时候无法申请到足够的内存,
或者 在创建新的线程时,没有足够的内存去创建对应的本地方法栈,
那么 java 虚拟机将会抛出一个
OutOfMemoryError异常。
4、与 JVM Stack(虚拟机栈) 的区别
JVM Stack(虚拟机栈) 是用于管理 java 方法的调用的。