Установить параметры планирования и дисциплину потока
#include <pthread.h>
int pthread_setschedparam( pthread_t thread,
int policy,
const struct sched_param *param );
- thread
- Идентификатор потока, для которого требуется получить параметры планирования. Получить идентификатор потока можно, вызвав pthread_create() или pthread_self().
- policy
- Новая политика планирования; одна из следующих:
- SCHED_FIFO
- планировщик с фиксированным приоритетом, в котором готовый поток с наивысшим приоритетом работает до тех пор, пока он не заблокируется или не будет вытеснен потоком с более высоким приоритетом.
- SCHED_RR
- то же, что и
SCHED_FIFO
, за исключением потоков с тем же временным интервалом уровня приоритета (round robin - карусельная диспетчеризация) каждые 4 тактовых периода (см. ClockPeriod()). - SCHED_OTHER
- в настоящее время такая же, как
SCHED_RR
. - SCHED_SPORADIC
- спорадическое планирование.
- param
- Указатель на struct sched_param, которая указывает параметры планирования, которые требуется использовать.
libc
Функция pthread_setschedparam() устанавливает политику планирования и связанные с ней параметры планирования потока thread в значения, указанные в policy и param.
- EOK
- Успешное завершение.
- EINVAL
- Недопустимая политика планирования policy или параметры param.
- ENOTSUP
- Политика планирования policy или параметры param не поддерживаются.
- EPERM
- Недостаточно прав для изменения политики планирования policy или параметров param.
- ESRCH
- Некорректный идентификатор потока thread.
POSIX 1003.1 THR TPS
- Точка остановки потока
- Нет
- Обработчик прерываний
- Нет
- Обработчик сигналов
- Да
- В потоке
- Да
struct sched_param, pthread_getschedparam(), pthread_setschedprio()
Предыдущий раздел: Описание API системной библиотеки