Provided by: manpages-ru-dev_4.27.0-1_all bug

НАИМЕНОВАНИЕ

       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)