我正在考虑开发一个应用程序,它将在六核机器上运行六个异步任务,每个核心一个.
但是有可能将任务锁定到自己的核心吗?
他们的想法是让他们自己主要运行,但有时通过共享内存区域进行通信.但是,我希望任务尽可能不受干扰地运行.
您正在寻找的概念称为"线程亲和力".它是如何实现的以及要求它的接口是特定于操作系统的.
在Linux下,尝试sched_setaffinity().glibc也可以提供pthread_attr_setaffinity_np().
taskset -c cpunum yourprocess
Run Code Online (Sandbox Code Playgroud)
做你想要的.可以改为提供PID,这样就可以将单线程设置为cpu.如果要从自己的程序更改cpu关联,请使用sched_setaffinity().