Pthreads POSIX线程pthread_setschedparam

Pthreads POSIX线程pthread_setschedparam,pthreads,Pthreads,有人能帮我更改线程优先级或线程策略吗?当我尝试使用pthread_setschedprio(pthread_self(),2)更改线程优先级或线程调度策略时,我从主线程创建一个子线程和pthread_setschedparam(pthread_self()、SCHED_OTHER和¶m)显示错误EINVAL无效参数。请给我解释一下其他的政策? 这里是struct schedu param param 不清楚param参数包含什么(它是struct sched_param*类型,具有sch

有人能帮我更改线程优先级或线程策略吗?当我尝试使用
pthread_setschedprio(pthread_self(),2)更改线程优先级或线程调度策略时,我从主线程创建一个子线程
pthread_setschedparam(pthread_self()、SCHED_OTHER和¶m)显示错误EINVAL无效参数。请给我解释一下其他的政策?

这里是struct schedu param param

不清楚param参数包含什么(它是struct sched_param*类型,具有sched_priority字段,因此您可以立即设置策略和优先级)。最可能的情况是,它包含不受支持/超出范围的值-或者垃圾,如果您忘记使用以下内容初始化它:

struct sched_param param;
param.sched_priority = 2;
顺便说一下,给定调度程序策略的有效优先级在sched_get_priority_max(int policy)sched_get_priority_min(int policy)返回的范围内,可能值得检查

更新

发件人:

必须为使用SCHED_OTHER调度的进程分配静态 优先级0,进程 在SCHED_FIFO或SCHED_RR下调度的可在中具有静态优先级 范围从1到99


非常感谢您尝试我的查询,关于SCHED_其他策略的最小优先级和最大优先级,我得到的都是零。