启动HotSpot VM时,JNI_CreateJavaVM方法的执行步骤是怎样的?
- 内容介绍
- 文章标签
- 相关推荐
本文共计809个文字,预计阅读时间需要4分钟。
确保仅有一个线程调用此方法,并创建一个HotSpot VM实例。由于HotSpot VM创建的静态数据结构无法再次初始化,一旦初始化到某个确定点后,进程空间内就只有一个实例。
1、确保只有一个线程调用这个方法并且确保只创建一个HotSpot VM实例。因为HotSpot VM创建的静态数据结构无法再次初始化,所以一旦初始化达到某个确定点后,进程空间里就只能有一个HotSpot VM。HotSpot VM的启动至此已经无法扭转;
2、检查并确保支持当前的JNI版本,初始化垃圾收集日志的输出流;
3、初始化OS模块,如随机数生成器(Random Number Generator)、当前进程id(Current Process id)、高精度计时器(High-Resolution Timer)、内存页尺寸(Memory Page Sizes)、保护页(Guard Pages)。保护页是不可访问的内存页,用作内存访问区域的边界。例如,操作系统常在线程栈顶压入一个保护页以保证引用不会超出栈的边界。
本文共计809个文字,预计阅读时间需要4分钟。
确保仅有一个线程调用此方法,并创建一个HotSpot VM实例。由于HotSpot VM创建的静态数据结构无法再次初始化,一旦初始化到某个确定点后,进程空间内就只有一个实例。
1、确保只有一个线程调用这个方法并且确保只创建一个HotSpot VM实例。因为HotSpot VM创建的静态数据结构无法再次初始化,所以一旦初始化达到某个确定点后,进程空间里就只能有一个HotSpot VM。HotSpot VM的启动至此已经无法扭转;
2、检查并确保支持当前的JNI版本,初始化垃圾收集日志的输出流;
3、初始化OS模块,如随机数生成器(Random Number Generator)、当前进程id(Current Process id)、高精度计时器(High-Resolution Timer)、内存页尺寸(Memory Page Sizes)、保护页(Guard Pages)。保护页是不可访问的内存页,用作内存访问区域的边界。例如,操作系统常在线程栈顶压入一个保护页以保证引用不会超出栈的边界。

