2010-01-26 257 views
2

Windows操作系統定義了下面的常量作爲線程優先級:Windows和Linux線程優先級等價

  • THREAD_PRIORITY_IDLE(-15)
  • THREAD_PRIORITY_LOWEST(-2)
  • THREAD_PRIORITY_BELOW_NORMAL(-1)
  • THREAD_PRIORITY_NORMAL (0)
  • THREAD_PRIORITY_ABOVE_NORMAL(1)
  • THREAD_PRIORITY_HIGHEST(2)
  • THREAD_PRIORITY_TIME_CRITICAL(15)

而Linux已sched_get_priority_max()和sched_get_priority_min()來獲取線程的優先級範圍。

是否可以在Windows和Linux線程優先級值之間進行等價處理?

回答

1

我用:

sched_get_priority_max(policy); 
    sched_get_priority_min(policy); 

知道的優先範圍。

4

默認Linux優先級範圍介於-20(最高)和20(空閒)之間,步長爲1,默認值爲0.負向(升高)優先級只能由超級用戶分配。注意Linux從未聲稱-20是Realtime/Time Critical,而RTLinux使用單獨的方法來實現Realtime。另請注意,在Linux內核空間中,這些優先級具有不同的範圍。 -20:20是一個嚴格的用戶空間事物。