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

На странице руководства HP ( ссылка) написано

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

Это верно для Linux Posix Thread (NPTL pthread)?

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

1 ответ

Решение

Отсюда:

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

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

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

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

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

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

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

Другие вопросы по тегам