Вот мое понимание того, что потоки Java планируются, когда java запускает поток при вызове start()
API класса java.lang.Thread
, работающего в современных реализациях ОС (например, Solaris 9).
Используется термин
LWP
, поскольку термин kernel thread
обычно используется в программировании ядра для запуска потока.
Итак, каждое создание java thread
с использованием java.lang.Thread::start()
API имеет карту 1:1 с созданием native thread
с использованием pthread_create()
или thr_create()
или CreateThread()
на платформах POSIX, Solaris, Windows соответственно. В свою очередь, каждый native thread
имеет карту 1:1 с LWP.
Мой вопрос:
1)
Могу ли я сказать, что в пользовательском пространстве jvm больше нет политики планирования потоков Java для планирования потоков Java на основе модели потоков 1-1 на приведенной выше диаграмме?
2) Дополнительно: в сценарии с двухъядерным процессором имеют ли эти 2 LWP (представляющие каждый процесс JVM) равные шансы на одновременное (параллельное) выполнение?
Примечание: мне, как новичку в Java, нужна эта ясность