Я где-то где-то читал, что у нас должна быть одна JVM на ядро. Я также читал, что Java не хорош с несколькими ядрами или процессорами, поэтому предпочтение отдается scala.
Недавно по ссылке я прочитал, что несколько потоков выполняются в разных ядрах, если они доступны.
Вопросов:
Да. На самом деле, все JVM, в наши дни, используют собственные потоки. Таким образом, планирование и распределение потоков по ядрам выполняется ОС, а не JVM.
Scala выполняется на JVM, как Java. Таким образом, нет никакой разницы в том, как потоки используют ядра между Java и Scala
Нет причин иметь одну JVM на ядро. Вы можете захотеть этого, чтобы избежать использования двух больших объемов памяти на JVM или иметь возможность перейти на версию 1 до версии 2 без прерывания обслуживания, но это другое дело.
Нет причин, связанных с проблемами многопоточности. Как я уже сказал, вы можете захотеть, чтобы два JVM могли отключить один без прерывания работы или изолировать две версии одного и того же приложения для разных клиентов, например. Но это не имеет никакого отношения к многопоточности.