У меня есть некоторые сомнения относительно параллелизма потоков posix в многопроцессорной машине. Я нашел аналогичные вопросы в SO по этому поводу, но не нашел окончательного ответа.
Ниже приведено мое понимание. Я хочу знать, прав ли я.
Потоки Posix являются потоками пользовательского уровня, и ядро не знает об этом.
Планировщик ядра будет рассматривать процесс(со всеми его потоками)как один объект для планирования. Это библиотека потоков, которая, в свою очередь, выбирает, какой поток запускать. Он может распределять процессорное время, заданное ядром, между потоками, которые могут быть запущены-.
Пользовательские потоки могут выполняться на разных ядрах ЦП. т.е. пусть потоки T1 и T2 создаются процессом (T), тогда T1 может выполняться в Cpu1, а T2 может выполняться в Cpu2, НО они не могут выполняться одновременно .
Пожалуйста, дайте мне знать, если я правильно понимаю.
Спасибо...