Я точно знаю что в большинстве компилируемых языках программирования многопоточность настоящая(в rust, C++ и т. д.). Но почти у всех интерпретируемых языков интерпретатор работает в 1 потоке и многопоточности с асинхронностью тут нет(как в js, python...). Меня интересует, есть ли в jvm языках многопоточность как в компилируемых языках?
В JVM "настоящая" многопоточность, в которой создаются потоки ОС.
Также сейчас идёт разработка "неполноценной" многопоточности на зелёных потоках - project loom.
PS: в js и python тоже можно применить "настоящую", а в rust и C++ - асинхронность на одном потоке.
Проверить это можно так. Запускаем jvm-процесс который создает 1000 потоков но не сразу а постепенно. Смотрим в linux top процессов и если количество процессов (потоков) растет то мы получаем доказательство того что jvm-theread линейно связан с числом linux-processes (threads).
В windows ЕМНИП один процесс включает в себя от 1 до бесконечности вычислительных потоков.
В linux процесс и поток отличаются опциями разделения ресурсов. Тоесть что по сути опциями безопасности. Например потоки шарят разделяемую память а процессы - не шарят никогда.