jni_CreateJavaVm详解

jni_CreateJavaVm详解
   1.确保只有一个线程调用这个方法并且确保只创建一个hotspot vm 实例。因为hotspot vm
   创建的静态数据结构无法再次初始化,所以一旦初始化到某个确定点后,进程空里只能有一
   个hotspot vm。
   2.检查并确保支持当前的jni版本,初始化垃圾收集日志的输出流。
   3.初始化os模块,如当前进程id、内存页尺寸,
   4.解析传入jni——createJavavm的命令选项,保存以备将来使用
   5.初始化标准的java系统属性。
   6.支持同步栈、内存和安全点页的模块
   7.加载libzip、libhpi、及libthread等库
   8.初始化并设置信号管理器
   9.初始化线程库
   10.初始化输出流日志记录器
   11.如果使用agent库,则初始化并启动
   12初始化线程状态和线程本地存储,他们储存线程私有数据
   13初始化部分hotspot全局数据,如事件日志,os同步语言
   14至此,vm可以创建线程可。创建出来的java版main线程被关联到当前操作系统的线程,只不
   过还没添加到已有的线程列表上
   15初始化并激活java级别的同步
   16初始化启动类加载器、代码缓存、解释器、jit编译器、系统字典、
   17.现在添加java主线程到以知线程列表中。检查universe(一种必备的全局数据结构)是否正
   常。创建vmthread,执行vm所有关键的功能。同时发出jvmti事件,报告Hotspotvm的当前
   状态。
   18.加载和初始化以下java类:java.lang.String等系统类。
   19.启动hotspotvm的信号处理器线程,初始化jit编译器并启动编译代理线程。启动vm辅助线程
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值