【发布时间】:2017-12-12 09:48:04
【问题描述】:
在 C++ 中,如何始终在具有最低优先级的核心中运行线程。我们可以使用 sched_getcpu() 来分配一个特定于线程的核心,但是我们如何实现低优先级运行呢?
【问题讨论】:
-
该函数返回线程正在运行的 CPU 的数量。它没有设置它。操作系统决定你的代码在哪里运行。
-
我是否遗漏了什么,但在对称多处理器 (SMP) 环境中,所有内核都是平等的并且并行运行,因此没有优先级的概念,即使最终在每个内核上运行的内容需要优先级操作系统?
-
你无法控制它。您的操作系统进程调度程序正在处理这个问题。但是在 Linux 上,您可以调整调度程序的参数:ibm.com/support/knowledgecenter/en/linuxonibm/liaai.saptuning/…
-
在我的应用程序中,我有一个后台进程(线程),它必须始终在单核中运行,如果有任何高优先级线程到来,那么它必须等待。
-
@ArunKS 您可以将低优先级分配给您的线程,yield 您的线程,但是仅将这些选项视为系统调度程序的提示
标签: c++ multithreading stdthread