Взаимодействие VM с приложением
Для выполнения ряда внутренних операций виртуальной машине нужно
получать детальную информацию о текущем состоянии исполняемой программы
и иметь возможность безопасно это состояние модифицировать. [...]
Для решения этой задачи виртуальная машина регулярно переходит в безопасное состояние (safepoint), в котором Java-потоки не имеют возможность менять свой стек и взаимодействовать с кучей (heap). Под безопасным состоянием понимается остановка работы
исполняемой программы в гарантированно целостном состоянии.

