java"VM线程"做什么?

sma*_*est 7 java multithreading jvm

我使用jstack输出线程信息.还有一个帖子:"VM Thread"prio = 10 tid = 0x0878b400 nid = 0x760a runnable

这个线程用来做什么?它需要50%的CPU使用率和大部分CPU时间

Avi*_*Avi 9

VM 线程在这里定义为:

该线程等待需要 JVM 到达安全点的操作出现。这些操作必须在单独的线程上发生的原因是因为它们都要求 JVM 处于无法修改堆的安全点。该线程执行的操作类型是“stop-the-world”垃圾收集、线程堆栈转储、线程挂起和偏向锁定撤销。

此处的去重 SO 答案中还提供了一些信息。


Fai*_*roz 1

我认为这是垃圾收集线程。它进行垃圾收集。