我的日程安排政策是SCHED_OTHER。使用setpriority()改变nice值是否会产生任何影响。 当我使用它时,我发现任何不同。
答案 0 :(得分:1)
对不起,请仔细阅读http://man7.org/linux/man-pages/man7/sched.7.html:
SCHED_OTHER:默认的Linux分时调度 SCHED_OTHER只能用于静态优先级0. SCHED_OTHER是 适用于所有人的标准Linux时间共享调度程序 不需要特殊实时机制的线程。该 要运行的线程是从基于a的静态优先级0列表中选择的 仅在此列表中确定的动态优先级。该 动态优先级基于nice值(由nice(2)设置, setpriority(2)或sched_setattr(2))并且每次都增加 量子线程已准备好运行,但被拒绝运行 调度。这确保了所有SCHED_OTHER线程之间的公平进展。
因此,线程的动态优先级受到setpriority调用的影响,它应该导致调度的更改(取决于调用中设置的新优先级值)。
答案 1 :(得分:0)
您还可以使用nice()来降低动态优先级。
尝试不错(9)。
#include <unistd.h>
int nice(int inc); // inc = increase, added to the current nice value