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_其他策略的最小优先级和最大优先级,我得到的都是零。