pthread_attr_setschedparam(3C) 可以设置调度参数。
int pthread_attr_setschedparam(pthread_attr_t *tattr, const struct sched_param *param);
#include <pthread.h> pthread_attr_t tattr; 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);
调度参数是在 param 结构中定义的。仅支持优先级参数。新创建的线程使用此优先级运行。
pthread_attr_setschedparam() 成功完成后将返回零。其他任何返回值都表示出现了错误。如果出现以下情况,该函数将失败并返回对应的值。
EINVAL
描述:param 的值为 NULL 或 tattr 无效。
可以采用两种方式之一来管理 pthreads 优先级:
创建子线程之前,可以设置优先级属性
可以更改父线程的优先级,然后再将该优先级改回来