如果我在进程中执行 sched_setaffinity,它产生的线程会受到影响吗
Posted
技术标签:
【中文标题】如果我在进程中执行 sched_setaffinity,它产生的线程会受到影响吗【英文标题】:if I do sched_setaffinity in a process, do the threads spawned by it get affected 【发布时间】:2011-04-07 09:35:49 【问题描述】:如果我这样做:CreateThreads,setched_affinity 到 CPU 0,那么所有线程也会对 CPU 0 有亲和力 相反,如果我颠倒操作顺序,即先 set_schedaffinity 然后创建线程,线程是否具有亲和力
我正在使用 pthreads 库创建线程。感谢您的任何回答
【问题讨论】:
【参考方案1】:sched_setaffinity()
调用是特定于 Linux 的,因此该答案适用于那里。
对sched_setaffinity()
的调用仅影响单个线程。使用pthread_create()
创建的线程会继承其父级的 CPU 亲和性掩码。
这意味着如果在创建其他线程后更改当前线程的亲和性,它们的亲和性将保持默认;但如果你以相反的顺序执行,它们将继承更改后的亲和集。
【讨论】:
以上是关于如果我在进程中执行 sched_setaffinity,它产生的线程会受到影响吗的主要内容,如果未能解决你的问题,请参考以下文章