我知道一个进程(父进程)可以使用固定到一个核心,sched_setaffinity
然后分叉的进程继承亲和性,并且也将固定在同一个核心上。但是,我不想让它们永远固定在同一个核心上。理想情况下,我希望他们一起留在同一个CPU上,即如果父级由操作系统调度程序迁移,则子级应该跟随父级并迁移到与父级相同的 CPU。
一种可能的方法是让shared variable
where 父级定期更新其当前 CPU。然后子进程可以定期查找此变量并sched_setaffinity
迁移到与父进程相同的 CPU。但是,这看起来有点 hacky,并且可能涉及它们在不同 CPU 上运行的时间段。有没有更好的方法来实现这一目标?