pthread_create() : что такое приоритет по умолчанию и политика планирования

Справочная страница HP (ссылка) говорит

«По умолчанию политика планирования и приоритет нового потока наследуются от создающего потока, т. е. по умолчанию подпрограмма pthread_create(3) игнорирует политику планирования и приоритет, установленные в указанном объекте атрибутов потока. Таким образом, для создания поток, на который распространяется политика планирования и приоритет, установленный в указанном объекте атрибутов потока, перед вызовом pthread_create(3) ваша программа должна использовать подпрограмму pthread_attr_setinheritsched(3), чтобы установить для атрибута планирования объекта атрибутов наследуемого потока
значение PTHREAD_EXPLICIT_SCHED. "

Верно ли это для потока Linux posix (NPTL pthread)?

Если нет, то каковы факторы, влияющие на приоритет и политику планирования потока, созданного с помощью pthread_create()?


person Lunar Mushrooms    schedule 28.01.2014    source источник


Ответы (1)


Из здесь:

Следующие значения могут быть указаны в inheritsched:

PTHREAD_INHERIT_SCHED Потоки, созданные с помощью атрибута attr, наследуют атрибуты планирования от создавшего потока; атрибуты планирования в attr игнорируются.

PTHREAD_EXPLICIT_SCHED Потоки, созданные с помощью attr, получают атрибуты планирования из значений, указанных объектом атрибутов.

Значением по умолчанию атрибута планировщика наследования во вновь инициализированном объекте атрибутов потока является PTHREAD_INHERIT_SCHED.

Итак, похоже, такое же поведение, как описано в вопросе.

На самом деле я бы подумал, что такое значение по умолчанию может быть определено стандартом (правда, не имея большого опыта в этом), но глядя на последнюю строку Атрибуты планирования потоков:

(...) Значения по умолчанию других атрибутов планирования определяются реализацией.

person sonicwave    schedule 28.01.2014