Use pthread_attr_setschedpolicy(3THR) to set the scheduling policy. The POSIX draft standard specifies scheduling policy attributes of SCHED_FIFO (first-in-first-out), SCHED_RR (round-robin), or SCHED_OTHER (an implementation-defined method).
SCHED_FIFO
First-In-First-Out; threads scheduled to this policy, if not preempted by a higher priority, will proceed until completion. Threads whose contention scope is system (PTHREAD_SCOPE_SYSTEM) are in real-time (RT) scheduling class and the calling process must have an effective user id of 0. SCHED_FIFO for threads that have a contention scope of process (PTHREAD_SCOPE_PROCESS) is based on the TS scheduling class.
SCHED_RR
Round-Robin; threads scheduled to this policy, if not preempted by a higher priority, will execute for a time period determined by the system. Threads whosethat have a contention scope of system (PTHREAD_SCOPE_SYSTEM) are in real-time (RT) scheduling class and the calling process must have an effective user id of 0. SCHED_RR for threads that have a contention scope of process (PTHREAD_SCOPE_PROCESS) is based on the TS scheduling class.
SCHED_FIFO and SCHED_RR are optional in POSIX, and are supported for real time bound threads only.
Currently, only the Solaris SCHED_OTHER, time-sharing, default value is supported in pthreads. For a discussion of scheduling, see the section "Scheduling".
Prototype: int pthread_attr_setschedpolicy(pthread_attr_t *tattr, int policy);
#include <pthread.h> pthread_attr_t tattr; int policy; int ret; /* set the scheduling policy to SCHED_OTHER */ ret = pthread_attr_setschedpolicy(&tattr, SCHED_OTHER);
Returns zero after completing successfully. Any other returned value indicates that an error occurred. When either of the following conditions occurs, the function fails and returns the corresponding value.