C ++& boost :: threads - 如何根据工作类型确定线程的优先级?

时间:2013-10-26 20:19:28

标签: c++ boost

我在Linux上使用C ++和boost。

根据工作类型确定线程优先级的最佳方法是什么? 是否可以在POSIX / pthread / Linux中改变线程优先级?

1 个答案:

答案 0 :(得分:2)

据我所知,boost不提供API(C ++ 11标准至少也没有)。

在Linux上,您可以独立于其他线程nicesetpriority。但请注意,这是 POSIX-conformant:

  

根据POSIX,漂亮的价值是每个进程设置。但是,在POSIX线程的当前Linux / NPTL实现下,nice值是每线程属性:同一进程中的不同线程可以具有不同的nice值。便携式应用程序应该避免依赖Linux行为,这可能会使标准符合未来。

由于Linux使用pthreadsboost的Linux端口也是如此),您还可以使用pthread_setschedparam,其优点是比Linux特定的每线程更具可移植性nice行为。

在这两种情况下,由于不得不求助于系统设施来管理所谓的“不透明”boost(或C ++ 11中的std)资源,所以会有轻微的不安,所以要谨慎行事(与任何特定于实现的内容一样)。