如何将所有线程设置为低/空闲CPU优先级?
如何将所有线程设置为低/空闲CPU优先级?
嘿,这个需求太懂了——玩游戏的时候后台程序抢CPU导致微卡顿、键盘延迟真的烦!我来给你捋几个实用的方法,顺便解答你关于Process Explorer的疑问:
一、任务管理器手动批量设置(新手友好)
这是最直观的方法,不用折腾脚本:
- 按下
Ctrl+Shift+Esc打开任务管理器,切换到「详细信息」标签页 - 找到你要调整的进程(比如
chrome.exe、steam.exe),按住Ctrl键逐个选中所有相关进程(包括steamhelper.exe这类子进程;点击「名称」列排序,能更方便地批量选中同名称进程) - 右键点击选中的任意进程,选择「设置优先级」→「低」(或者更彻底的「空闲」)
- 弹出确认框时点击「更改优先级」就行
二、批处理脚本一键批量设置(高效省心)
如果你不想每次手动选进程,写个简单的批处理脚本,双击就能搞定所有目标进程:
- 新建一个文本文件,粘贴下面的代码(以Chrome为例,Steam可以照搬修改):
@echo off echo 正在设置所有Chrome进程为低优先级... wmic process where name="chrome.exe" CALL setpriority 16384 echo 设置完成! pause
- 如果你要处理Steam的所有进程(包括
steamhelper.exe),把代码改成这样:
@echo off echo 正在设置所有Steam相关进程为低优先级... wmic process where name="steam.exe" CALL setpriority 16384 wmic process where name="steamhelper.exe" CALL setpriority 16384 echo 设置完成! pause
- 把文件保存成
SetLowPriority.bat(注意后缀是.bat不是.txt),右键以管理员身份运行即可。
小科普:
16384对应Windows的「低」优先级,如果你想设为「空闲」,把数值改成64就行。其他优先级数值参考:
- 正常:
32- 高:
128- 实时:
256(不建议给游戏用,容易导致系统无响应)
三、为什么Process Explorer里只有部分线程被设置?
这个问题我也遇到过,主要有这几个原因:
- 有些线程是程序的核心线程或者系统托管线程,程序本身会动态调整它们的优先级,不会完全继承进程的优先级设置
- Process Explorer默认可能只显示部分线程,你可以点击顶部菜单栏的「View」→「Show Lower Pane」,然后在下方面板选择「Threads」,这样就能看到所有线程,全选后右键设置优先级就行
- 部分程序会在运行时自动重置线程优先级,你刚设置完它又调回去了——这种情况可以用脚本定时执行,或者用第三方工具锁定优先级
四、游戏优先级设置的小提醒
别给游戏设「实时」优先级!「高」优先级完全足够了——实时优先级会抢占系统关键进程(比如输入法、音频服务)的资源,反而可能导致游戏或系统出问题。设置方法和后台程序一样,在任务管理器里找到游戏进程,右键设为「高」就行。
备注:内容来源于stack exchange,提问作者Fr V




