最近,我编写了一些code1,试图使用JNA调用sched_setaffinity,试图将流程的亲和力设置为特定的核心。函数sched_setaffinity的第一个参数是进程id。
用pid作为0调用函数(引用进程本身)工作得很好。但是,我希望能够根据线程id而不是进程来设置关联。有什么办法我能做到吗?
发布于 2013-11-17 12:33:04
有一个名为np的函数可以将线程的CPU关联掩码设置为cpuset所指向的CPU集。
cpu_set_t cpuset;
CPU_ZERO(&cpuset);
CPU_SET(core_id, &cpuset);
pthread_t current_thread = pthread_self();
pthread_setaffinity_np(current_thread, sizeof(cpu_set_t), &cpuset);这段代码可以将线程设置为核心(由core_id表示)。
据我所知,Java线程并不总是与操作系统中的线程相匹配。因此,我不太确定这段本机代码是否可以帮助您。
https://stackoverflow.com/questions/20030070
复制相似问题