Что делает Java "VM thread"? - PullRequest
       18

Что делает Java "VM thread"?

6 голосов
/ 09 октября 2010

Я использую jstack для вывода информации о потоке. И есть нить "VM Thread" prio = 10 tid = 0x0878b400 nid = 0x760a работоспособный

Для чего используется эта тема? Требуется 50% загрузки процессора и большая часть времени процессора

Ответы [ 3 ]

1 голос
/ 09 июня 2018

Поток VM определен здесь как:

Этот поток ожидает появления операций, требующих, чтобы JVM достигла безопасной точки. Причина, по которой эти операции должны выполняться в отдельном потоке, заключается в том, что все они требуют, чтобы JVM находилась в безопасной точке, где изменения в куче не могут произойти. Тип операций, выполняемых этим потоком, - это сборка мусора "остановка мира", дампы стека потоков, приостановка потока и аннулирование смещенной блокировки.

Есть также некоторая информация, предоставленная в дедуплицированном ответе SO здесь .

1 голос
/ 09 октября 2010

Я думаю, что это тема сбора мусора.Это делает сбор мусора.

0 голосов
/ 09 октября 2010

Откуда вы знаете, что этот поток использует 50% использования? Быть работоспособным не означает, что он потребляет процессор.

AFAIK используется для внутренних операций Java, возможно, в GC.

Какую версию Java вы используете? Я бы проверил, есть ли у вас обновленная версия Java, и посмотрим, произойдет ли это по-прежнему.

Я бы предложил вам профилировать память вашего приложения, чтобы увидеть, сколько объектов вы создаете, и посмотреть, сможете ли вы уменьшить количество объектов, чтобы уменьшить рабочую нагрузку GC.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...