Windows和Linux线程优先级等价

时间:2010-01-26 10:29:05

标签: windows linux multithreading

Windows操作系统将以下常量定义为线程优先级:

  • 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线程优先级值之间是否可以等效?

2 个答案:

答案 0 :(得分:4)

默认Linux优先级范围介于-20(最高)和20(空闲)之间,步长为1且默认值为0.否定(提升)优先级只能由超级用户分配。注意Linux从不声称-20是实时/时间关键,而RTLinux使用单独的方法来实现Realtime。另请注意,在Linux内核空间中,这些优先级具有不同的范围。 -20:20是严格的用户空间。

答案 1 :(得分:1)

我用:

  sched_get_priority_max(policy);
  sched_get_priority_min(policy);

了解优先级范围。