Другие вопросы подтверждают технические детали, но:
Точнее, планирование потоков в Java довольно эффективно контролируется блокировками , wait / notify / notifyAll , sleep методы и другие средства управления параллелизмом.Только в те моменты времени выполнения приложения, , когда их нет , порядок выполнения различных потоков остается неопределенным .
Основная причина, вероятно, заключается в простоте переносимости Java в различных аппаратных / операционных системах.Также логично, что если вы, как разработчик, не определяете порядок, в котором различные потоки в вашем приложении должны выполняться с использованием вышеупомянутых элементов управления параллелизмом, вы не заботитесь об этом, и это просто не имеет значения, и произвольный путь можетвыбранный JVM.