多线程编程指南

设置线程的优先级

请使用 pthread_setschedparam(3C) 修改现有线程的优先级。此函数对于调度策略不起作用。

pthread_setschedparam 语法

int	 pthread_setschedparam(pthread_t tid, int policy,

    const struct sched_param *param);
#include <pthread.h>



pthread_t tid;

int ret;

struct sched_param param;

int priority;



/* sched_priority will be the priority of the thread */

sched_param.sched_priority = priority;

policy = SCHED_OTHER;



/* scheduling parameters of target thread */

ret = pthread_setschedparam(tid, policy, &param); 

pthread_setschedparam 返回值

pthread_setschedparam() 在成功完成之后返回零。其他任何返回值都表示出现了错误。如果出现以下任一情况,pthread_setschedparam() 函数将失败并返回相应的值。


EINVAL

描述:

所设置属性的值无效。


ENOTSUP

描述:

尝试将该属性设置为不受支持的值。