pthread_setconcurrency, pthread_getconcurrency -
изменяет/возвращает
уровень
распараллеливания
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 <
[email protected]>, kogamatranslator49
<
[email protected]>, Kogan, Max Is <
[email protected]>, Yuri
Kozlov <
[email protected]> и Иван
Павлов <
[email protected]>
Этот
перевод
является
бесплатной
документацией;
прочитайте
Стандартную
общественную
лицензию GNU
версии 3
или более
позднюю,
чтобы
узнать об
условиях
авторского
права. Мы не
несем
НИКАКОЙ
ОТВЕТСТВЕННОСТИ.
Если вы
обнаружите
ошибки в
переводе
этой
страницы
руководства,
пожалуйста,
отправьте
электронное
письмо на
[email protected]