Provided by: manpages-ru-dev_4.21.0-2_all bug

ИМЯ

       pthread_attr_setscope,   pthread_attr_getscope   -   изменяет/возвращает  атрибут  области
       конкурирования из объекта атрибутов нити

LIBRARY

       POSIX threads library (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-2001, POSIX.1-2008.

ЗАМЕЧАНИЯ

       Область  конкурирования  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>, Kogan, Max Is
       <ismax799@gmail.com>, Yuri Kozlov <yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com>

       Этот перевод является бесплатной документацией; прочитайте Стандартную общественную
       лицензию GNU версии 3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ или более позднюю, чтобы
       узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

       Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте
       электронное письмо на ⟨man-pages-ru-talks@lists.sourceforge.net⟩.