设为首页 加入收藏

TOP

Java 工具(jmap,jstack)在Linux上的源码分析(三)执行的线程vm thread
2014-11-24 14:36:59 来源: 作者: 【 】 浏览:1
Tags:Java 工具 jmap jstack Linux 源码 分析 执行 线程 thread

(一)启动vm thread


我们可以看到,在thread.cpp里启动了线程vm thread,在这里我们同时也稍微的略带的讲一下jvm在linux里如何启动线程的。


通常在linux中启动线程,是调用


而在java里却增加了os:create_thread --初始化线程 和os:start_thread--启动线程


我们去看一下jvm里面是如何在linux里做到的


在os_linux.cpp中来看create_thread的方法


继续看java_start方法


首先jvm先设置了当前线程的状态是Initialized, 然后notify所有的线程,


while (osthread->get_state() == INITIALIZED) {
sync->wait(Mutex::_no_safepoint_check_flag);
}


不停的查看线程的当前状态是不是Initialized, 如果是的话,调用了sync->wait()的方法等待。


来看os:start_thread的方法 os.cpp


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Java 工具(jmap,jstack)在Linux.. 下一篇JVM Thread stop 的源码分析

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: