#java #многопоточность #jvm
Как потоки в Java соотносятся с потоками в операционной системе ? Например, в UNIX системах есть системный вызов thread. Вызывается ли он при создании нового потока ? Возможно я плохо гуглил, но не нашел ничего в интернете. Было бы клева увидеть ссылку на какую-нибудь статью по теме.
Ответы
Ответ 1
В HotSpot под Linux и Windows потоки Java выполняются потоками операционной системы. Из HotSpot Runtime Overview: The basic threading model in Hotspot is a 1:1 mapping between Java threads (an instance of java.lang.Thread) and native operating system threads. The native thread is created when the Java thread is started, and is reclaimed once it terminates. The operating system is responsible for scheduling all threads and dispatching to any available CPU.Ответ 2
Use the Source, Luke - да пребудут с тобой исходники! Если посмотреть на исходники Thread в OpenJDK, то там при запуске треда явно виден вызов нативного метода: private native void start0(); //вызов нативного метода Что автоматически означает вызов библиотечной Си функции, реализация которой зависит от платформы. Я склонен думать/верить, что для Linux это будут треды ОС.
Комментариев нет:
Отправить комментарий