我正在使用一些QThread
基于 KDE Neon 18.04 中的工作线程(基于 Ubuntu 18.04,内核 4.15.0-46-generic)。工作线程干扰了我的桌面应用程序,因此我决定降低它们的优先级。
Qt 文档QThread::start(priority)
says:
优先级参数的效果取决于操作
系统的调度策略。特别是,优先事项将是
在不支持线程优先级的系统上被忽略(例如
Linux,参见http://linux.die.net/man/2/sched_setscheduler http://linux.die.net/man/2/sched_setscheduler了解更多
细节)。
阅读上述文档后,我预计优先级不会对我的 Linux 系统产生影响。但我还是尝试了一下。你猜怎么着——它运行得很好。
那么,为什么 Qt 文档声明 Linux 上没有线程优先级呢?为什么它仍然有效?
根据您使用的 Linux/Unix/*Nix 版本,调度程序可能支持也可能不支持。据我所知,现在大多数 Linux 系统都支持 Qt 的大部分优先级,但不是所有优先级。我怀疑文档说它不受支持,因此他们不需要列出支持优先级以及支持哪些级别的操作系统变体和调度程序变体的每种组合。
您可以使用以下方法验证它是否已使用正确的优先级创建了它htop
or top
并处理awk
: https://unix.stackexchange.com/questions/19301/what-is-a-command-to-find-priority-of-process-in-linux https://unix.stackexchange.com/questions/19301/what-is-a-command-to-find-priority-of-process-in-linux
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)