为什么PRI在" prstat" Solaris的优先级与pthread_create的优先级不同

时间:2014-10-07 11:58:42

标签: pthreads solaris

当我使用Solaris的prstat来获取线程的状态时,我得到了关注。 我无法理解的一件事是每个线程的te PRI与我的配置完全不同,以通过pthread_create创建这些线程。我将sme线程的优先级设置为10,但是这里的PRI显示出完全不同的优先级。谁可以帮助回答我的问题。 prstat命令的PRI和pthread_create的参数之间是否存在匹配关系?

   PID USERNAME  SIZE   RSS STATE  PRI NICE      TIME  CPU PROCESS/LWPID      
  5874 mals      355M  313M run     32    0  20:09:58 4.1% epu1/26
  5874 mals      355M  313M sleep   54    0   8:50:39 1.8% epu1/36
  5874 mals      355M  313M sleep   59    0   2:13:10 1.5% epu1/40
  5874 mals      355M  313M sleep   44    0   2:25:36 1.5% epu1/37
  5874 mals      355M  313M sleep   59    0   5:21:01 1.1% epu1/24
  5874 mals      355M  313M sleep   59    0   5:21:00 1.1% epu1/22

1 个答案:

答案 0 :(得分:1)

prstat命令显示的优先级是线程的当前优先级。

除非您处于实时/固定优先级线程的不太可能的情况下,否则它们会根据调度类,负载,各自的使用情况等而不断变化。

然后期望这些值与您以编程方式设置的值不同,这些值是静态优先级值。