问题描述
||
我在Nginx源代码中看到了这样的代码:
if (sched_setaffinity(0,32,(cpu_set_t *) &cpu_affinity) == -1) {
ngx_log_error(NGX_LOG_ALERT,cycle->log,ngx_errno,\"sched_setaffinity(0x%08Xl) Failed\",cpu_affinity);
}
为什么这里pid
是0
而不是getpid()
?
解决方法
从
sched_setaffinity(2)
联机帮助页:
亲和力掩码实际上是每个线程的属性,可以是
为线程组中的每个线程独立调整。的
调用returned5ѭ返回的值可以在参数中传递
pid将“ 1”指定为0将设置调用的属性
线程,并将调用返回的值传递给getpid(2)
设置线程组主线程的属性。 (如果你是
使用POSIX线程API,然后改用pthread_setaffinity_np(3)
sched_setaffinity()
。)