开发者社区> 问答> 正文

Thread in vm是指什么?

Thread in vm是指什么?

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

    Thread in vm主要执行的像hotstpot内部代码,如arraycopy,如现在要执行一个arraycopy拷贝到一半的时候,GC如果把array移到另一个位置,肯定就出问题了,拷贝的都是一个非法的数据,做arraycopy的时候,其实是会把自己Java线程的状态标志为Thread in VM,类似的像反射,有的时候做一些resolve或link,hottsport里有很多的这种操作,因为这些动作它往往是直接去操作hot stpot内部的那些数据结构,所以不会希望有一些vm operation类似像GC那些动作,来做这些事情,所以需要用把线程状态标志为Thread in VM,在Thread in VM的状态下,这个时候VM thread必须要等这个操作给做完以后才能做,所以hot stpot里对这些在VM状态的代码,其实做得很小心,它必须要保证这些这些事情能够很快的完成,不会有这种长时间的阻塞或者这样的动作。

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

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载