pthread_attr_setschedparam(3C) sets the scheduling parameters.
int pthread_attr_setschedparam(pthread_attr_t *restrict tattr, const struct sched_param *restrict param);
#include <pthread.h> pthread_attr_t tattr; int ret; int newprio; sched_param param; newprio = 30; /* set the priority; others are unchanged */ param.sched_priority = newprio; /* set the new scheduling param */ ret = pthread_attr_setschedparam (&tattr, ¶m);
Scheduling parameters are defined in the param structure. Only the priority parameter is supported.
pthread_attr_setschedparam() returns zero after completing successfully. Any other return value indicates that an error occurred. If the following conditions occur, the function fails and returns the corresponding value.
EINVAL
Description:The value of param is NULL or tattr is invalid.
You can manage pthreads priority in either of two ways:
You can set the priority attribute before creating a child thread
You can change the priority of the parent thread and then change the priority back