Stop-the-World означает остановку Java-потоков приложения на фазе GC, а concurrent — выполнение части GC одновременно с ними. Parallel означает несколько GC-потоков и не отменяет STW.
Каковы основные различия между механизмами сборки мусора Stop-the-World и Concurrent в Java?
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-этапы. Поэтому дополнение условия неточно: снижение заметности пауз связано не только с параллельностью, а с устройством конкретного алгоритма.