常见命令优先级查询
实时线程策略分为SCHED_FIFO, SCHED_RR两种,具体优先级计算反推如下:
命令 | 计算公式 | 趋势含义 | 备注 |
---|---|---|---|
ps -eLlf | grep proc | ps_prio = 99 - 40 - pthread_prio | ps_prio[-40~58] 数值越大优先级越小 | pthread_prio[1,99]数值越大优先级越大, 与nice无关 |
top -p proc -H | top_prio = 99 - 100 - pthread_prio | top_prio[-100~-2] 数值越大优先级越小 | pthread_prio[1,99]数值越大优先级越大, 与nice无关; 当pthead_prio == 99时,top显示rt. |
cat /proc/PID/sched | grep prio | sched_prio = 99 - pthread_prio | sched_prio[0~98] 数值越大优先级越小 | pthread_prio[1,99]数值越大优先级越大, 与nice无关 |
线程级优先级设置步骤
- 初始化线程属性
pthread_attr_init(&attr);
- 设置调用者要重新指定的新线程调度策略的模式
pthread_attr_setinheritsched(&attr, PTHRE