Windows支持通过任务管理器或PowerShell设置进程CPU亲和力:任务管理器中右键进程选“设置相关性”勾选目标核心;PowerShell用Get-Process或Start-Process配合ProcessorAffinity属性设置十六进制掩码,如0x03表示仅用CPU 0和1,需管理员权限。

你想让某个正在运行的程序只在特定CPU核心上执行,避免它被系统调度到其他核导致缓存失效或干扰实时任务,Windows系统原生就支持这项功能,不需要额外安装工具。
通过任务管理器设置进程亲和力
第一步:按 Ctrl+Shift+Esc 打开任务管理器 → 切换到「详细信息」选项卡。
第二步:找到目标进程(比如 chrome.exe 或 python.exe),右键 → 选择「设置相关性」。
第三步:取消勾选你不希望该进程使用的 CPU 核心,只保留你要绑定的那几个。例如只想用第0号和第2号核心,就只勾选「CPU 0」和「CPU 2」→ 点击「确定」。
⚠️ 注意:若进程以管理员权限运行,而你当前不是管理员身份打开的任务管理器,会弹出“拒绝访问”提示——此时必须用管理员权限重新打开任务管理器才能修改。
使用 PowerShell 命令行强制绑定
方法一:对已运行进程立即绑定
以管理员身份打开 PowerShell → 运行:Get-Process -Id 12345 | ForEach-Object { $_.ProcessorAffinity = 0x03 }
其中 12345 替换为实际 PID,0x03 是十六进制掩码,对应二进制 00000011,表示仅允许在 CPU 0 和 CPU 1 上运行。
让 Windows 桌面程序在开机时静默自启并隐藏到系统托盘。特别适用于 Flutter、Electron 等无视 VBS/ProcessStartInfo 窗口样式、难以隐藏的顽固应用。提供「VBS 启动器 + Python ctypes/Win32 API」的隐藏窗口方案,可稳定把窗口收进托盘且不闪控制台。
方法二:启动时直接绑定
不先启动程序,而是用 Start-Process 绕过默认调度:Start-Process notepad.exe -WindowStyle Hidden | ForEach-Object { $_.ProcessorAffinity = 0x04 }
这会让记事本启动后立刻只跑在 CPU 2 上(0x04 = 二进制 00000100)。注意:此命令返回的是新进程对象,需配合 Wait-Process 或 $PID 捕获后续操作。
验证亲和力是否生效
在 PowerShell 中执行:Get-Process -Id 12345 | Select-Object Id, ProcessName, ProcessorAffinity
输出中的 ProcessorAffinity 值就是当前生效的十六进制掩码。若显示为 0xffffffff(32位系统)或 0xffffffffffffffff(64位系统),说明仍绑定全部核心,未成功限制。
也可用资源监视器(resmon)→「CPU」页签 → 右键列标题 → 勾选「CPU 逻辑处理器」→ 查看该进程在各逻辑核上的活动条纹是否只出现在你指定的核心上。










