如何更改 Linux 中特定线程(LWT)的优先级?

Posted

技术标签:

【中文标题】如何更改 Linux 中特定线程(LWT)的优先级?【英文标题】:How to change priority of specific thread (LWT) in Linux? 【发布时间】:2017-12-22 10:22:23 【问题描述】:

可以像这样查看进程的所有线程的优先级和调度策略:

ps H -o 'tid pri cls comm' PID

如何从命令行更改各个线程的优先级?

renicechrt 之类的命令似乎会影响整个过程,但我正在寻找线程之间的关键路径。 /proc 有什么有用的吗?

【问题讨论】:

【参考方案1】:

你可以使用 chrt

例子:

sudo chrt -r -p 40 1502

其中 40 是优先级,1502 是 TID

ps -eLo pid,tid,rtprio,ni,comm 输出的第二列

【讨论】:

我很确定我挖掘了chrt 的来源,但它并没有这样做。 @Velkan - 它不做什么? @Armali,它不会改变特定线程的优先级。它改变了进程的优先级。 @Velkan - 布丁的证据在于吃。当我尝试时,它会更改指定 TID 的优先级。 @Armali,显然对内核的更改在这些年来更加统一了 TID 和 PID,所以现在它正在工作。

以上是关于如何更改 Linux 中特定线程(LWT)的优先级?的主要内容,如果未能解决你的问题,请参考以下文章

我可以在线程执行时更改线程的优先级。更改是发生还是os忽略它?(Java)

如何在linux中增加QT Gui线程优先级[重复]

在优先级反转问题上,我们应该更改互斥锁或线程的属性吗?

多线程-3

应用于线程的延迟优先级更改

Linux系统进程调度