使用
sched_setaffinity(这是特定于Linux的)。
为什么调度程序会在不同处理器之间切换线程?好吧,假设您的线程最后一次在处理器1上运行,并且当前正在等待再次安排执行时间。同时,处理器1当前正在运行其他线程,但是处理器2是空闲的。在这种情况下,调度程序将线程切换到处理器2是合理的。但是,复杂的调度程序将尽力避免不必要地在处理器之间“反弹”线程。

使用
sched_setaffinity(这是特定于Linux的)。
为什么调度程序会在不同处理器之间切换线程?好吧,假设您的线程最后一次在处理器1上运行,并且当前正在等待再次安排执行时间。同时,处理器1当前正在运行其他线程,但是处理器2是空闲的。在这种情况下,调度程序将线程切换到处理器2是合理的。但是,复杂的调度程序将尽力避免不必要地在处理器之间“反弹”线程。