Я занимаюсь изучением языковых реализаций на многоядерных платформах.В настоящее время я пытаюсь выяснить пару вещей:
- Как реализация JVM отображает
java.lang.Thread
в собственный поток ОС ? - Например, скажем Open JDK, я думаю, что даже не знаю, на какие части мне стоит взглянуть, чтобы узнать больше об этом.Есть ли документ, описывающий, как реализованы функции native ?Поскольку в
java.lang.Thread
есть части, которые являются родными, я предположил, что, возможно, некоторые дополнительные внутренние части закодированы в собственных частях.
Принимая это к многоядерности, как это отображение сделано для многоядерности?Как потоки отображаются на разные ядра для одновременной работы?Я знаю, что есть реализация ExecutorService
, которую мы можем использовать, чтобы воспользоваться преимуществами многоядерных функций.Это может быть следствием предыдущих ответов: если собственные потоки ОС отвечают за распределение работы и планирование потоков, то верно ли сказать, что JVM делает через ThreadPool
и ExecutorService
только создание потоков и передачу задачих?
Буду благодарен за ваши ответы, а также если я нахожусь на правильном пути по теме.