增强 pthread 中的线程优先级:综合指南
在 Linux 环境中使用 pthread 时,通常需要将线程优先级调整为优化性能。本指南解决了线程优先级范围和描述的不确定性,以及与设置过高优先级相关的潜在风险。
Linux 中的线程优先级
Linux采用各种调度策略,每种策略都有自己的优先级系统。默认策略 SCHED_OTHER 缺乏优先级选项,但提供了可以在策略内调整的“良好”级别。
要有效修改线程优先级,必须切换到备用调度策略,例如 SCHED_BATCH ,不需要root权限。其他“正常”策略包括 SCHED_IDLE 和 SCHED_OTHER,而实时策略包括 SCHED_FIFO 和 SCHED_RR。
使用实时策略时请小心,因为使用不当可能会导致系统挂起并需要 root 权限才能访问.
确定机器能力
至要确定您的计算机的功能,您可以使用 util-linux 软件包中的 chrt 实用程序。以下命令列出了各种调度策略的最小和最大优先级:
$ chrt -m
例如,输出可能类似于:
SCHED_OTHER min/max priority : 0/0
SCHED_FIFO min/max priority : 1/99
SCHED_RR min/max priority : 1/99
SCHED_BATCH min/max priority : 0/0
SCHED_IDLE min/max priority : 0/0
优化线程优先级
调度策略和优先级的选择取决于具体的应用程序需求。要最大限度地减少时间分配,请考虑使用 SCHED_BATCH 或调整 SCHED_OTHER 中的良好级别。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3