C++ & boost::threads - 如何根据工作类型确定线程的优先级?
C++ & boost::threads - How to prioritize thread based on work type?
我在Linux上使用带有boost的C++。
根据工作类型确定线程优先级的最佳方法是什么?是否可以在POSIX/pthread/Linux中改变线程优先级?
据我所知,boost 没有提供 API 来做到这一点(C++11 标准肯定至少没有)。
在 Linux 上,您可以独立于其他线程nice
或setpriority
每个线程。但请注意,这不符合 POSIX 标准:
根据 POSIX 的说法,不错的值是每个进程的设置。但是,在当前 POSIX 线程的 Linux/NPTL 实现下,nice 值是每个线程属性:同一进程中的不同线程可以具有不同的 nice 值。可移植应用程序应避免依赖 Linux 行为,这些行为将来可能会使标准符合。
由于Linux使用pthreads
(Linux端口boost
也是如此),你也可以使用pthread_setschedparam
它的优点是比Linux特定的每线程nice
行为更具可移植性。
在这两种情况下,由于不得不求助于系统设施来管理所谓的"不透明"boost
(或C++11)资源的std
,因此请谨慎行事(与任何特定于实现的内容一样)。
相关文章:
- 提供对不同类型的数据(建议、代码审查)的线程安全访问的类
- 线程 std::调用未知类型,无法专门化函数错误
- C++线程错误:没有名为"类型"MINGW 的类型
- 通过将两个参数包的元素线程化为类型对来解压缩这两个参数包
- 是仅使用get或toplown的原始类型的线程安全性的威胁
- 是否要确保一个线程修改的任何数据类型的共享变量对其他线程可见
- C 线程错误:无类型为“类型”
- C 线程错误:无类型类型
- std::线程<未解析的重载函数类型>错误
- 当OwningThread表示线程ID时,它为什么是HANDLE类型的CRITICAL_SECTION的成员
- 如何在不同的上下文(例如线程)中保留原始异常类型信息
- 使用变量类型 std::function 运行线程
- C++ & boost::threads - 如何根据工作类型确定线程的优先级?
- 抽象与线程相关的 STL 和 Boost 类型和方法
- 线程之间的Qt连接类型:为什么这样做
- 如何在多个线程中将模板类型用作槽和信号参数
- 这种类型的编码是线程安全的还是死锁安全的
- 使用 shared_ptrs 对<无符号 int、boost::any> 类型的通用容器的线程安全实现
- 头文件中定义的线程函数给出类型强制转换错误
- 提升线程错误<未解决的重载函数类型>