Junior — Middle
114
Quelle est la différence de volume de mémoire nécessaire entre un thread normal et un thread virtuel?
Réponse de l'IA
sobes.tech IA
Обычные (платформенные) потоки в Java требуют значительных ресурсов памяти, так как для каждого создаётся отдельный стек (обычно несколько сотен килобайт) и системные ресурсы ОС для управления потоком.
Виртуальные потоки (introduced в Project Loom) значительно легче по потреблению памяти, так как они реализуются на уровне JVM и не требуют выделения отдельного системного потока ОС и большого стека. Вместо этого виртуальные потоки используют гораздо меньший стек и могут эффективно переключаться внутри одного или нескольких системных потоков.
Примерно:
- Обычный поток: стек ~512 КБ (зависит от платформы), плюс системные ресурсы.
- Виртуальный поток: стек может быть в несколько килобайт, а переключение между ними очень дешёвое.
Это позволяет создавать тысячи и даже миллионы виртуальных потоков без существенного увеличения потребления памяти, что невозможно с обычными потоками.