Provided by: manpages-ru-dev_4.26.0-1_all 

НАИМЕНОВАНИЕ
pthread_attr_setscope, pthread_attr_getscope - изменяет/возвращает атрибут области конкурирования из
объекта атрибутов нити
БИБЛИОТЕКА
Библиотека потоков POSIX (libpthread, -lpthread)
ОБЗОР
#include <pthread.h>
int pthread_attr_setscope(pthread_attr_t *attr, int scope);
int pthread_attr_getscope(const pthread_attr_t *restrict attr,
int *restrict scope);
ОПИСАНИЕ
Функция pthread_attr_setscope() изменяет атрибут области конкурирования (contention scope) в объекте
атрибутов нити, на который указывает attr, в значение scope. Данным атрибутом определяется набор нитей, с
которыми нить конкурирует за ресурсы (например ЦП). В POSIX.1 указаны два возможных значения scope:
PTHREAD_SCOPE_SYSTEM
Нить конкурирует за ресурсы со всеми нитями всех процессов системы, которые находятся в том же
домене планирования выделения (группа из одного или нескольких процессоров). Нити с
PTHREAD_SCOPE_SYSTEM запланированы друг относительно друга согласно их политике планирования и
приоритета.
PTHREAD_SCOPE_PROCESS
Нить конкурирует за ресурсы со всеми нитями процесса, в котором она создана, и которые также
созданы с областью конкурирования PTHREAD_SCOPE_PROCESS. Нити с PTHREAD_SCOPE_PROCESS
запланированы относительно других нитей процесса согласно их политике планирования и приоритета. В
POSIX.1 не указано как эти нити конкурируют с нитями из других процессов системы или с другими
нитями того же процесса, которые созданы с областью конкурирования PTHREAD_SCOPE_SYSTEM.
В POSIX.1 от реализации требуется поддерживать, как минимум, одну из этих областей конкурирования. В
Linux поддерживается PTHREAD_SCOPE_SYSTEM и не поддерживается PTHREAD_SCOPE_PROCESS.
В системах, где есть поддержка нескольких областей конкурирования, для учёта значения параметра,
заданного pthread_attr_setscope(), при вызове pthread_create(3), вызывающий должен использовать
pthread_attr_setinheritsched(3) для присвоения атрибуту inherit-scheduler объекта атрибутов attr значения
PTHREAD_EXPLICIT_SCHED.
Функция pthread_attr_getscope() возвращает атрибут области конкурирования из объекта атрибутов нити, на
который указывает attr, в буфер на который указывает scope.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
При успешном выполнении эти функции возвращают 0; при ошибке возвращается ненулевой номер ошибки.
ОШИБКИ
Вызов pthread_attr_setscope() может завершиться со следующими ошибками:
EINVAL Указано неверное значение в scope.
ENOTSUP
Значение scope равно PTHREAD_SCOPE_PROCESS, которое не поддерживается в Linux.
АТРИБУТЫ
Описание терминов данного раздела смотрите в attributes(7).
┌─────────────────────────────────────────────────────────────────────┬──────────────────────┬──────────┐
│ Интерфейс │ Атрибут │ Значение │
├─────────────────────────────────────────────────────────────────────┼──────────────────────┼──────────┤
│ pthread_attr_setscope(), pthread_attr_getscope() │ Безвредность в нитях │ MT-Safe │
└─────────────────────────────────────────────────────────────────────┴──────────────────────┴──────────┘
СТАНДАРТЫ
POSIX.1-2008.
ИСТОРИЯ
POSIX.1-2001.
ПРИМЕЧАНИЯ
Область конкурирования PTHREAD_SCOPE_SYSTEM обычно означает, что нить пространства пользователя явно
привязана к одной единице планирования ядра. В Linux это относится как к устаревшей реализации
LinuxThreads так и к новой NPTL, в которых используется привязка нитей 1:1.
В POSIX.1 сказано, что значение по умолчанию для области конкурирования оставляется за реализацией.
СМОТРИТЕ ТАКЖЕ
pthread_attr_init(3), pthread_attr_setaffinity_np(3), pthread_attr_setinheritsched(3),
pthread_attr_setschedparam(3), pthread_attr_setschedpolicy(3), pthread_create(3), pthreads(7)
ПЕРЕВОД
Русский перевод этой страницы руководства разработал(и) Alexey, Azamat Hackimov
<azamat.hackimov@gmail.com>, kogamatranslator49 <r.podarov@yandex.ru>, Darima Kogan
<silverdk99@gmail.com>, Max Is <ismax799@gmail.com>, Yuri Kozlov <yuray@komyakino.ru>, Иван Павлов
<pavia00@gmail.com> и Kirill Rekhov <krekhov.dev@gmail.com>
Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной
лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или
более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.
Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом
разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу списка рассылки русских
переводчиков.
Справочные страницы Linux 6.9.1 2 мая 2024 г. pthread_attr_setscope(3)