开发者社区> 问答> 正文

Java thread状态转换是怎样的?

Java thread状态转换是怎样的?

展开
收起
1358896759097293 2021-05-04 15:22:21 1097 0
1 条回答
写回答
取消 提交回答
  • 45271990@qq.com

    在Hotspot里,对于这种Java的线程,其实主要有三个状态,在互相这样转换,第一个就是说是Thread in Java,这个是说明这个线程现在执行的代码是Java的代码,如下图中标注,在执行Java代码中,在hotstpot里它其实又分成两种模式,一种是解释器模式就interpreter,第二种是JIT,生成的那种native的code,这两种模式它在这个里面处理也是不一样的。

    36.png

    另外两了状态Thread in native和Thread in VM,他们其实执行的都是类似于像c和c++的一些代码。 Thread in vm的话主要是hotspot本身自己的那些代码; Thread initiative的话主要是一些JMI,如Java code有的时候需要调一些GMI的接口去访问,去调用一些c的库和方法,这时候它会进入的是Thread in native的状态。 以上就是他的三个状态,在 safepoint的时候,要针对这三种不同的情况来做不同的处理。

    2021-05-05 22:51:47
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载