Потоки Java реального времени и потоки уровня ОС в Linux

#java #real-time-java #linuxthreads

#java #в реальном времени-java #linuxthreads

Вопрос:

Существует ли соотношение 1 к 1 между потоками уровня ОС и потоками Java при использовании потоков Java реального времени ( RealtimeThread или NoHeapRealtimeThread )? Кроме того, использует ли Java fork() или clone() для каждого из процессов, созданных на уровне ОС?

Ответ №1:

Поток Java в Linux зависит от версии, но большинство современных реализаций используют pthread , поток для Linux, на самом деле не процесс. поток Linux также известен как облегченные процессы, которые генерируются не вызовом fork, а скорее вызовом pthread. Потоки выполняются в рамках одного процесса и могут совместно использовать определенные ресурсы.

Да, они имеют отношение 1 к 1 (ps -Lf), но действительно сложно определить, что есть что, поскольку идентификатор потока ос — это магическое число, известное только jvm.

Приведенная ниже статья должна помочь.

http://linuxprograms.wordpress.com/2007/12/19/linux-kernel-support-for-threads-light-weight-processe/

Ответ №2:

использует ли Java fork() или clone() для каждого из процессов, созданных на уровне ОС?

Если вы имеете в виду процессы, созданные Runtime.exec(), он должен использовать fork(). Если вы все еще ссылаетесь на потоки, он не может использовать fork (), поскольку потоки не являются процессами.

Ответ №3:

Из того, что я видел на RedHat 3.x — 5.x с Sun / Oracle JVM, это один процесс операционной системы на поток Java. Хотя я не знаю о fork против clone.

Комментарии:

1. Я думаю, вас может смутить то, что ps вам говорят. Это, конечно, НЕ один «процесс» на поток, потому что процессы не разделяют адресные пространства. (И нет … Java также не использует общую память для этого.)

2. некоторые люди называют потоки легковесными процессами, но это для того, чтобы отличать их от обычных (тяжеловесных) процессов. Правильный (1) термин — ОС или собственный поток … и если вы начнете называть их процессами, люди запутаются. (1 Правильно == как их называет документация ОС …)