taskset和sched_setaffinity之间的交互

谁能告诉我,如果我跑了会发生什么

taskset -c 7 ./fred.x 

但是然后在fred.x里面fred.x一个线程正在调用sched_setaffinity来绑定到core 6?

那个线程是否会得到任何CPU时间,还是会无限期地闲置?

taskset本身调用sched_setaffinity() ,然后execve运行你的命令。 所以这个问题归结为“如果我在同一个线程中调用两次sched_setaffinity()会发生什么? 答案是,第二个电话覆盖第一个电话。

所以在你的具体例子中,调用sched_setaffinity()的线程确实会被绑定到核心6,并且它将是可运行的。