pid 0对于sched_setaffinity()意味着什么

时间:2011-06-04 02:44:11

标签: c cpu-usage

我在nginx source中看到了这样的代码:

    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()

1 个答案:

答案 0 :(得分:3)

来自sched_setaffinity(2) manpage

  

亲和力掩码实际上是可以的每线程属性   针对线程组中的每个线程独立调整。该   可以在参数中传递从gettid(2)调用返回的值   PID。 pid指定为0将设置调用的属性   线程,并将调用返回的值传递给getpid(2)   设置线程组主线程的属性。(如果你是   使用POSIX线程API,然后使用pthread_setaffinity_np(3)代替   sched_setaffinity()。)