如果我在进程中执行 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,它产生的线程会受到影响吗的主要内容,如果未能解决你的问题,请参考以下文章

在父进程恢复执行之前等待所有子进程 UNIX

如何在Python中执行此unix进程?连接参数时的问题

子进程打开意外的电子窗口

如果我们关闭它启动的终端,linux 会杀死后台进程吗?

nodejs进程线程优化性能

杀死进程时如何执行 logout() ?