如何禁止任何应用程序的所有线程在特定 CPU 核心上运行,除非我指定的线程?

2024-04-12

如何禁止任何应用程序的所有线程在特定 CPU 核心上运行,除非我指定的线程(在 Win/nix 中)?

要将线程或进程绑定到特定的 CPU 内核,我们可以使用 OS-API 函数:POSIX 中的 sched_setaffinity() 和 WINAPI 中的 SetProcessAffinityMask()、SetThreadAffinityMask()。

但是,如果我们希望在这些核上不会启动当前在操作系统上运行的许多第三方应用程序的任何其他线程,该怎么办呢?

UPDATE:需要一个实时系统——必须有由我指定的线程从未发生过上下文切换,或者临时挂起。

可能的解决方案:

  • 使用实时操作系统,例如QNX
  • 除了绑定到处理器核心之外,还可以设置实时的优先级
  • 使用 XEN 虚拟化跨操作系统分配处理器内核

使用固定内存可以轻松解决页面错误:(POSIX) mlock() 或 (WINAPI) VirtualLock()


如果您将进程和线程设置为实时优先级,它们就会把其他一切都排除在外。使用设置优先级 http://msdn.microsoft.com/en-us/library/windows/desktop/ms686219%28v=vs.85%29.aspx设置进程优先级和设置线程优先级 http://msdn.microsoft.com/en-us/library/windows/desktop/ms686277%28v=vs.85%29.aspx对于线程,像这样:

SetPriorityClass(HProcess, REALTIME_PRIORITY_CLASS);
SetThreadPriority(HThread, THREAD_PRIORITY_TIME_CRITICAL);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何禁止任何应用程序的所有线程在特定 CPU 核心上运行,除非我指定的线程? 的相关文章

  • 在 WCF 上重用我的 PagedList 对象

    问题 我有一个自定义集合PagedList
  • Boost MPI 在监听列表时不会释放资源?

    这是一个后续问题如何释放 boost mpi request https stackoverflow com questions 44078901 how do i free a boostmpirequest 我在监听列表而不是单个项目时
  • C# 中类似图的实现

    所以我有一个对象 我们称之为 Head 它有一个对象列表 C C1 C2 C3 T T1 T2 和 M M1 M2 并且所有这些都是相互关联的 例如 Head gt C1 C2 C3 T1 T2 M1 M2 T1 gt C1 C2 T2 g
  • 为什么像 BindingList 或 ObservableCollection 这样的类不是线程安全的?

    我一次又一次发现自己必须编写 BindingList 和 ObservableCollection 的线程安全版本 因为当绑定到 UI 时 这些控件无法从多个线程更改 我想理解的是why情况就是这样 这是设计错误还是故意的 问题是设计一个线
  • std::make_pair 与浮点数组(float2,无符号整数)

    我有一个用 float2 unsigned int 对模板化的向量 例如 std vector
  • 原子存储抛出错误

    我最近升级到了 C 11 兼容编译器 并且尝试将一些代码从 boost 更新到 c 11 标准 我在使用atomic store转换一些代码时遇到了问题 这是一些简单的测试代码 似乎会引发编译器错误 int main std shared
  • 检测反射 DLL 注入

    在过去的几年中 恶意软件 以及一些渗透测试工具 如 Metasploit 的 meterpreter 负载 已经开始使用反射 DLL 注入 PDF http www harmonysecurity com files HS P005 Ref
  • 模板与非模板类,跨编译器的不同行为

    我在一些应用程序中使用编译时计数器 它确实很有用 昨天我想用 gcc 编译一个程序 我之前使用的是 msvc 并且计数器的行为在模板类中发生了变化 它在模板类中不再工作 过于简化的代码 Maximum value the counter c
  • 查找方法不适用于 EF6.1 模拟

    我已经使用这些 msdn 指南设置了模拟 使用模拟框架进行测试 EF6 及以上 http msdn microsoft com en us data dn314429 var bsAc db BusAcnts FirstOrDefault
  • 本地时间的内存需要释放吗?

    void log time t current time 0 tm ptm localtime current stuf 只是想确定 我是否需要在方法结束时释放 tm 指针分配的内存 不 你不应该释放它 该结构是静态分配的 检查文档 htt
  • 从 C# 调用时无法识别 Powershell 命令

    这是这个的延续Question https stackoverflow com questions 66280000 powershell object returns null 66280138 noredirect 1 comment1
  • 意外的 const 引用行为

    include
  • 展开 std::reference_wrapper 的成本

    Given include
  • 基础设施 - 同步和异步接口和实现? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在实现库 基础设施时 并且该 API 的用户希望同步和异步使用代码 我读到混合同步和异步并不是一个好主意 例如 同步实现包括等待异步实现 显然
  • 如何在控制台程序中获取鼠标位置?

    如何在 Windows 控制台程序中用 C 获取鼠标单击位置 点击时返回鼠标位置的变量 我想用简单的文本命令绘制一个菜单 这样当有人点击时 游戏就会注册它并知道位置 我知道如何做我需要做的一切 除了单击时获取鼠标位置 您需要使用 Conso
  • 为什么 C++ 标准没有将 sizeof(bool) 定义为 1?

    Size of char signed char and unsigned char由 C 标准本身定义为 1 个字节 我想知道为什么它没有定义sizeof bool also C 03 标准 5 3 3 1 说 sizeof char s
  • 强制函数调用的顺序?

    假设我有一个抽象基类 并且我想要一个必须由派生类实现的纯虚方法 但我想确保派生方法以特定顺序调用函数 我可以做什么来强制执行它 I E base class virtual void doABC 0 virtual void A 0 vir
  • 在 C# 中使用自定义千位分隔符

    在显示字符串时 我尝试不使用 字符作为千位分隔符 而是使用空格 我想我需要定义一种自定义文化 但我似乎做得不对 有什么指点吗 例如 将 1000000 显示为 1 000 000 而不是 1 000 000 no String Replac
  • 在 LP2844Z(Zebra 打印机)上的收据中包含 PNG [重复]

    这个问题在这里已经有答案了 我正在致力于创建一个基于 HTML5 画布的签名 绘图框 目前我们在服务器上将画布保存为PNG 但可以轻松地将base64字符串保存在数据库中 现在的问题是我们如何在打印的收据上添加签名 目前我们使用 GF 字段
  • 如何根据当前日期时间发现财政年度?

    我需要基于当前或今天的日期时间的财政年度 假设我们认为今天的日期是10 April 2011 那么我需要输出为Financial Year 2012在某些情况下 我需要以短格式显示相同的输出FY12 我想以两种方式显示 在我们的要求中 考虑

随机推荐

  • 将日期字符串解析为某个 Java 对象

    我正在从事一个读取文件和处理数据的项目 例如 我必须处理日期 2012 01 10 23 13 26 2012 年 1 月 13 日 我找到了 Joda 包 有点有趣 但不知道它是否是最简单的 我能够将第一个示例解析为 DateTime 对
  • 如何仅在 DateTime 对象中删除 C# 中日期的时间部分?

    我需要删除日期时间的时间部分 或者可能有以下格式的日期object形式不以string 06 26 2009 00 00 00 000 我无法使用任何string转换方法 因为我需要日期object form 我尝试首先转换DateTime
  • 如何使用 Vuejs 加载 url

    我正在建立一个包含几篇文章的网站 我正在使用 Vue Router 目前我的文章的 url 看起来像 article id 例如 http localhost 8080 article 85 如何在 URL 中添加文章标题 以便它可以htt
  • 如何在 Bitbucket wiki 上的 Markdown 中转义“@”

    谁知道如何逃脱 BitBucket wiki 上 markdown 中的字符 就我而言 后面紧跟着恰好是某人的用户名的单词 即 blahblah 到目前为止我尝试过的 64 但这些都不起作用 屏蔽被忽略 当我使用字符代码时 它只是按原样输出
  • DatePickerDialog 首先显示年份选择器

    我希望我的 DatePickerDialog 一打开就显示年份列表 For example when I show the dialog I see the calendar view If I tap on the text 1900 t
  • 在 div 类中使用 javascript 搜索文本 [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我想制作一个脚本 在其中我可以使用 document getElementByClassName 自动搜索某个字符串 没有文本框或任何内容
  • C++/CLR 托管单元测试存在链接器错误

    当将任何托管类包含到我的托管单元测试中时 编译会输出以下错误 1 gt UnitTest obj error LNK2020 unresolved token 0A000360 extern C int cdecl CrtDbgReport
  • GCC 的“vstring”是什么?

    我读了一些 GCC 错误报告 那里的人在谈论 vstring 搜索网络我注意到http gcc gnu org onlinedocs libstdc libstdc html USERS 4 2 vstring 8h html http g
  • sql server 2008 Management Studio 不检查我的查询的语法

    一如既往 我的惊讶将会有一个合理的解释 但在那之前 我有这个查询 delete from Photo where hs id in select hs id from HotelSupplier where id 142 执行得很好 后来我
  • Rails pub/sub 与 faye

    在 Rails 应用程序中 我使用 Faye 机架适配器 来推送通知 用于聊天 我想将 Faye 用于另一个用例 更多推送通知 但我似乎无法弄清楚 在我的应用程序中 可以从后台作业创建模型 因此我想在创建模型时刷新我的视图之一 例如索引操作
  • Python3:将PDF下载到内存并将第一页转换为图像

    我尝试执行以下操作 将 PDF 文件下载到内存 将第一页转换为图像 将该图像与 tweepy 一起使用 我尝试了以下代码 但遇到了错误 from PIL import Image from pdf2image import convert
  • 获取 JScrollPane 中显示的组件

    我有一个包含 JPanel 的 JScrollPane 我用许多按钮填充了这个 JPanel 是否有可能获取当前显示的按钮 我知道我可以通过以下方式访问 JPanel 的子项jpanel getComponents 但这些都是此窗格中的所有
  • NestJs - 使用具有 2 个主体类选项的类验证器验证请求主体

    我有一个休息电话 它可能会收到类型为 classA 和 classB 的主体 我需要将其保留为两个不同的类 例子 classes class ClassA IsString Length 1 128 public readonly name
  • “Skipcond”在 MARIE 汇编语言中如何工作?

    我正在尝试理解 MARIE 汇编语言 我不太明白skipcond为了 做类似的事情 lt or gt 或乘法或除法 我正在采用这个简单的程序 x 1 while x lt 10 do x x 1 endwhile 我不明白的是如何使用某些跳
  • 以 JSON/XML 格式呈现非活动记录对象 [RoR]

    我正在使用 ruby gem whois 测试一个小型 whois API 由于 whois 响应的格式非常有趣 有时我被要求不要使用 ActiveRecord 来保存响应 简而言之 它的工作原理如下 用户从视图中以表单形式输入域名 操作
  • 暂停和继续秒表

    我正在尝试创建秒表 我已经做到了 但我想随时暂停并继续时间 我尝试过一些事情 但我不知道该怎么做 有谁能解释一下我该怎么做吗 import time tkinter canvas tkinter Canvas width 1900 heig
  • 将一种类型的委托动态转换为另一种类型

    我正在使用反射来获取恰好是委托的字段 我需要用我自己的委托替换这个委托 但是委托的类型是私有的 所以我无法从我的方法创建它并分配它 我有一个具有完全匹配签名的委托类型 那么有什么方法可以动态地将我的委托转换为其他类型吗 我有一个代表未知类型
  • 为什么 String.addingPercentEncoding() 的返回值是可选的?

    的签名String百分比转义的方法是 func addingPercentEncoding withAllowedCharacters CharacterSet gt String 这是stringByAddingPercentEncodi
  • 无法点击 api 来验证 otp(使用 Volley)

    我给出了我在 AndroidHive 的 github 存储库上提出的查询的链接 请看一下 我的问题 https github com rajatbeck LoginWithOTP issues 1 https github com raj
  • 如何禁止任何应用程序的所有线程在特定 CPU 核心上运行,除非我指定的线程?

    如何禁止任何应用程序的所有线程在特定 CPU 核心上运行 除非我指定的线程 在 Win nix 中 要将线程或进程绑定到特定的 CPU 内核 我们可以使用 OS API 函数 POSIX 中的 sched setaffinity 和 WIN