Каковы основные различия между механизмами сборки мусора Stop-the-World и Concurrent в Java?

Stop-the-World означает остановку Java-потоков приложения на фазе GC, а concurrent — выполнение части GC одновременно с ними. Parallel означает несколько GC-потоков и не отменяет STW.

Короткий ответ

Что ответить на собеседовании

Stop-the-World означает остановку Java-потоков приложения на фазе GC, а concurrent — выполнение части GC одновременно с ними. Parallel означает несколько GC-потоков и не отменяет STW.

Подробный разбор

Ответ с пояснениями

Условие

Каковы основные различия между механизмами сборки мусора Stop-the-World и Concurrent в Java? UPD: STW не исчезает, он просто становится менее заметным из-за параллельной обработки.

Ответ

Stop-the-World означает остановку Java-потоков приложения на фазе GC, а concurrent — выполнение части GC одновременно с ними. Parallel означает несколько GC-потоков и не отменяет STW.

Параллельная фаза может быстрее завершить работу при полностью остановленном приложении. Concurrent-фазы уменьшают объём работы в паузе, но используют CPU и дополнительные механизмы согласования изменений. У concurrent-сборщиков также могут оставаться короткие STW-этапы. Поэтому дополнение условия неточно: снижение заметности пауз связано не только с параллельностью, а с устройством конкретного алгоритма.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее