在 Solaris 上,processor_bind
用于设置线程的亲和性。您需要知道目标线程的 LWPID 或使用常量P_MYID
来引用自己。
我有一个看起来像这样的函数:
void set_affinity(pthread_t thr, int cpu_number)
{
id_t lwpid = what_do_I_call_here(thr);
processor_bind(P_LWPID, lwpid, cpu_number, NULL);
}
实际上,我的函数中有一堆跨平台的东西,为了清楚起见我已经省略了。
关键是我想设置任意 pthread_t 的亲和力,所以我不能使用P_MYID
.
如何使用processor_bind
或替代接口来实现这一点?