c - 有没有办法将进程锁定到 CPU?

标签 c linux api

我正在考虑开发一个应用程序,该应用程序将在六核机器上运行六个异步任务,每个内核一个。

但是是否可以将任务锁定到自己的核心?

这个想法是让它们主要由自己运行,但有时会通过共享内存区域进行通信。但是,我希望任务尽可能不受干扰地运行。

最佳答案

您正在寻找的概念称为“线程亲和性”。它的实现方式和请求它的接口(interface)是特定于操作系统的。

在 Linux 下,尝试 sched_setaffinity() . glibc 也可能提供 pthread_attr_setaffinity_np()。

关于c - 有没有办法将进程锁定到 CPU?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5479458/

相关文章:

c - 将 char[] 写入数组

linux - 过程区域表和全局描述符能力和虚拟地址

c++ - 如何在我的 C++ 程序中访问 `addr2line` 功能?

java - 服务层中的服务组织?

c# - Azure API 管理和 ASMX/WSDL SOAP 端点?

rest - altova mapforce 是否公开任何 REST API?

c - 将文件上传到 C 中的 apache 服务器(没有 Web header )

c - 避免在 Linux (GCC) 上使用 getch() 按 Enter "No-echo"

linux - 哪个线程监听特定的 UDP 端口

c - eCos : Compile and Run sample application on Linux