如何解决使用 pthread_attr_setschedparam 设置优先级似乎不会改变 NICE 值
我想创建一个优先级低于其父级的线程。
我想出了以下代码,希望线程的 NICE 值是 5。
pthread_attr_t tattr;
struct sched_param param;
if(pthread_attr_init(&tattr) != 0)
{
print("Thread_Create: Error pthread_attr_init \n");
}
if(pthread_attr_getschedparam(&tattr,¶m) != 0)
{
print("Thread_Create: Error pthread_attr_getschedparam \n");
}
if(pthread_attr_setschedpolicy(&tattr,SCHED_RR) != 0)
{
print("Thread_Create: Error pthread_attr_setschedpolicy \n");
}
param.sched_priority = 5;
if(pthread_attr_setschedparam(&tattr,¶m) != 0)
{
GeaLog(GeaLogLevel_Emerg,"Thread_Create: Error pthread_attr_setschedparam \n");
}
pthread_create(&instance->_private.thread,&tattr,Run,instance);
现在,我想检查一下它是否有效。我执行了 ps -m -l [parent pid]
# ps -m -l 10802
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 - 0 10802 1 12 - - - 10362 - pts/1 0:18 /usr/crank/build
0 S 0 - - 12 80 0 - - hrtime - 0:18 -
1 S 0 - - 0 80 0 - - hrtime - 0:00 -
我原以为 NI 是 5,但它是 0。 你知道我错过了什么吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。