我在Linux上使用C++进行boost。C++&boost :: threads - 如何根据工作类型区分线程的优先级?
根据工作类型优先考虑线程的最佳方法是什么? 是否可以改变POSIX/pthread/Linux中的线程优先级?
我在Linux上使用C++进行boost。C++&boost :: threads - 如何根据工作类型区分线程的优先级?
根据工作类型优先考虑线程的最佳方法是什么? 是否可以改变POSIX/pthread/Linux中的线程优先级?
据我所知,boost并没有提供一个API来执行它(C++ 11标准肯定没有)。
在Linux上,您可以将nice
或setpriority
各自独立于其他线程。但是请注意,这是不POSIX,符合的:
根据POSIX,漂亮的值是每个进程设置。但是,在当前的POSIX线程的Linux/NPTL实现下,nice值是per-thread属性:同一进程中的不同线程可能具有不同的好值。便携式应用程序应该避免依赖于Linux的行为,这可能会使未来的标准保持一致。
因为Linux使用pthreads
(也是如此的boost
Linux移植),你也可以使用pthread_setschedparam
其具有比在Linux特有的每个线程nice
行为更便携的优势。
在这两种情况下,都存在轻微的不安,因为不得不求助于系统设施来管理所谓的“不透明”的资源,因此请慎重行事(与任何特定于实现的)。
如果这些重新划分的线程中的一个分叉,子进程是否具有线程或原始进程的优先级? – TSG