有没有办法将进程locking到CPU?

我正在考虑开发一个应用程序,在六核机器上运行六个asynchronous任务,每个核心一个。

但是有可能将任务locking在自己的核心上吗?

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

Solutions Collecting From Web of "有没有办法将进程locking到CPU?"

你正在寻找的概念被称为“线程亲和力”。 它是如何实现的,要求它的接口是特定于操作系统的。

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

taskset -c cpunum yourprocess 

做你想要的。 可以改为提供PID,这样可以将单个线程设置为一个cpu。 如果你想改变自己的程序的CPU亲和力,使用sched_setaffinity()

不锁定,但可以将进程的cpu关联关联起来

只是记录,另一种方法,不涉及编程:打开任务管理器,进入进程选项卡,右键单击您的过程,并选择设置亲和力…