Android,我创建了8个线程并将它们绑定到8个不同的CPU核心。 绑定成功。但是线程运行一段时间后,CPU affinity好像失效了。绑定到线程的 CPU 随机更改。 这是正常现象还是错误?
cpu affinity设置代码是这样的:
for (int i=0; i<8; ++i){
mWorkers.push_back([i]() {
cpu_set_t cpuset;
CPU_ZERO(&cpuset);
CPU_SET(i, &cpuset);
pid_t tid = pthread_gettid_np(mWorkers[i-1].native_handle());
int rc = sched_setaffinity(tid, sizeof(cpu_set_t), &cpuset);
std::this_thread::sleep_for(std::chrono::milliseconds(20));
while (!mStop) {
// some code ..
}
} );
}