【发布时间】:2021-09-04 05:59:17
【问题描述】:
如果我这样做:CreateThreads,setched_affinity 到 CPU 0,那么所有线程也会对 CPU 0 有亲和力 相反,如果我颠倒操作顺序,即先 set_schedaffinity 然后创建线程,线程是否具有亲和力
我正在使用 pthreads 库创建线程。感谢您的任何回答
【问题讨论】:
如果我这样做:CreateThreads,setched_affinity 到 CPU 0,那么所有线程也会对 CPU 0 有亲和力 相反,如果我颠倒操作顺序,即先 set_schedaffinity 然后创建线程,线程是否具有亲和力
我正在使用 pthreads 库创建线程。感谢您的任何回答
【问题讨论】:
sched_setaffinity() 调用是特定于 Linux 的,因此该答案适用于那里。
对sched_setaffinity() 的调用仅影响单个线程。使用pthread_create() 创建的线程会继承其父级的 CPU 亲和性掩码。
这意味着如果在创建其他线程后更改当前线程的亲和性,它们的亲和性将保持默认;但如果你以相反的顺序执行,它们将继承更改后的亲和集。
【讨论】: