Потоки Java и потоки POSIX, Пользователь или уровень ядра?

1

Очень новичок в потоках и конструкциях ОС здесь,

было интересно, может ли кто-нибудь понять что-то для меня.

При реализации потоков в C у вас есть доступ к потокам POSIX, является ли поток POSIX потоком уровня ОС? Запуск на уровне ядра?

А в Java при создании и запуске потоков эти потоки пользовательского уровня? Какой уровень доступа мы имеем к конструкциям уровня OS в java? Являются ли семафоры в Java просто заданными в пользовательском пространстве?

Заранее благодарим за любое понимание любого из этих вопросов.

  • 1
    Что такое «конструкции уровня ОС»? Очевидно, что для ввода / вывода потребуется поддержка ОС, как и для семафоров и подобных механизмов sychro, которые могут требовать потоков для ожидания.
Теги:
multithreading
semaphore
operating-system

1 ответ

3
Лучший ответ

Потоки POSIX - это потоки ядра. Нити ядра - это "нормальные" потоки; вы знаете, используете ли вы пользовательские потоки в C (потому что вам придется писать всю систему потоков).

Потоки Java также являются потоками ядра. В Unix-подобных системах они могут использовать потоки POSIX; в Windows они используют потоки Windows. Можно предположить, что существует JVM для системы без потоков, и она реализует сами темы (как пользовательские потоки).

  • 0
    Спасибо @immibis, что немного прояснилось для меня. Что касается семафоров, то при реализации семафоров в C против Java. Можно ли с уверенностью сказать, что C дает немного более низкий уровень доступа к семафорам? Скажите уровень процесса против уровня потока? Или это доступно и на Java?
  • 0
    @ pipedreams2 Что такое «семафор уровня процесса» или «семафор уровня потока»?
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню