Краткий ответ: не волнуйтесь!
Если вы не используете сопрограммы или явные потоки, тогда ваш код должен продолжать выполняться в том же потоке.
Однако есть нет гарантии , что ваш поток всегда будет выполняться на одном и том же ядре;ОС может свободно планировать его в зависимости от того, какое ядро оно считает наилучшим в каждый момент.(Я не знаю, какие критерии могут использовать различные ОС для принятия таких решений, но он, вероятно, будет учитывать другие потоки и процессы. И ваш поток может перемещаться между кодами достаточно быстро, чтобы запутать любой мониторинг, который вы можете выполнять.)
Кроме того, даже если вы не запускаете какие-либо другие потоки, вероятно, есть несколько фоновых потоков, обрабатывающих сборщик мусора , запуск финализаторов и другие служебные действия.Если вы используете инструментарий с графическим интерфейсом, такой как JavaFX или Swing, он будет использовать множество потоков, как и среда, такая как Spring.(Обычно они помечаются как ' dæmon ' theads, поэтому они не препятствуют выходу JVM.)
Наконец, сама JVM, вероятно, будет использовать системные потоки для фоновая компиляция байт-кода, мониторинг и так далее.(Разные реализации JVM могут делать это по-разному, конечно.)
(Кстати, все это не относится к Kotlin; это одинаково для всех приложений Java. Но для Kotlin это почти наверняка будет другим)/ JS и Kotlin / native.)
Так что нет, активность на нескольких ядрах не означает, что ваш код был преобразован или переписан.Это просто означает, что вы не работаете на голом металле и должны доверять JVM, чтобы позаботиться о вещах!