Man page - pthread_attr_getscope(3)

Packages contains this manual

Available languages:

en fr ja ru ro

Manual

pthread_attr_setscope

НАИМЕНОВАНИЕ
БИБЛИОТЕКА
ОБЗОР
ОПИСАНИЕ
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
ОШИБКИ
АТРИБУТЫ
СТАНДАРТЫ
ИСТОРИЯ
ПРИМЕЧАНИЯ
СМОТРИТЕ ТАКЖЕ
ПЕРЕВОД

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

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).

Image grohtml-608463-1.png

СТАНДАРТЫ

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 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу списка рассылки русских переводчиков .