Provided by: manpages-ru-dev_4.21.0-2_all ![bug](/img/bug.png)
![bug](/img/bug.png)
ИМЯ
pthread_setconcurrency, pthread_getconcurrency - изменяет/возвращает уровень распараллеливания
LIBRARY
POSIX threads library (libpthread, -lpthread)
СИНТАКСИС
#include <pthread.h> int pthread_setconcurrency(int new_level); int pthread_getconcurrency(void);
ОПИСАНИЕ
Функция pthread_setconcurrency() информирует реализацию приложения о желаемом уровне распараллеливания (concurrency level), задаваемом в new_level. Реализация принимает это только как рекомендацию: в POSIX.1 не указан уровень распараллеливания, который должен получиться в результате вызова pthread_setconcurrency(). Значение new_level равное 0 указывает реализации использовать уровень распараллеливания по своему усмотрению. Функция pthread_getconcurrency() возвращает текущее значение уровня распараллеливания для этого процесса.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
При успешном выполнении pthread_setconcurrency() возвращается 0; при ошибке возвращается ненулевой номер ошибки. Функция pthread_getconcurrency() всегда завершается успешно, возвращая уровень распараллеливания, заданный предыдущим вызовом pthread_setconcurrency(), или 0, если функция pthread_setconcurrency() не вызывалась.
ОШИБКИ
Функция pthread_setconcurrency() может завершиться со следующей ошибкой: EINVAL Значение new_level отрицательно. В POSIX.1 также описана ошибка EAGAIN («значение, указанное в new_level, привело бы к превышению системного ограничения»).
ВЕРСИИ
These functions are available since glibc 2.1.
АТРИБУТЫ
Описание терминов данного раздела смотрите в attributes(7). ┌───────────────────────────────────────────────────────┬──────────────────────┬──────────┐ │Интерфейс │ Атрибут │ Значение │ ├───────────────────────────────────────────────────────┼──────────────────────┼──────────┤ │pthread_setconcurrency(), pthread_getconcurrency() │ Безвредность в нитях │ MT-Safe │ └───────────────────────────────────────────────────────┴──────────────────────┴──────────┘
СТАНДАРТЫ
POSIX.1-2001, POSIX.1-2008.
ЗАМЕЧАНИЯ
Значение уровня распараллеливания по умолчанию равно 0. Уровни распараллеливания имеют смысл только в реализациях нитей M:N, где в любой момент времени поднабор из набора пользовательских нитей процесса может быть ограничен меньшим количеством единиц планирования ядра. Назначение уровня распараллеливания позволяет приложению дать системе подсказку о количестве единиц планирования ядра для эффективного выполнения приложения. В реализациях нитей LinuxThreads и NPTL используется отношение 1:1, поэтому назначение уровня распараллеливания не имеет смысла. Другими словами, в Linux эти функции существуют только лишь для совместимости с другими системами и никак не влияют на выполнение программы.
СМ. ТАКЖЕ
pthread_attr_setscope(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⟩.