C ++ 11 Как я могу получить поток снова из ОС в изолированном ядре? - PullRequest
0 голосов
/ 09 октября 2018

Вот вопрос, я получил поток, который назначен для определенного ядра процессора.В этом потоке я хотел бы создать другой поток, который должен работать на неизолированном процессоре (а не на изолированном процессоре, поскольку он создан).

    std::thread th2;

std::thread th1([&] () {


    th2 = std::thread([&] () {

        //do something;
    });

});


cpu_set_t cpu_set;
CPU_ZERO(&cpu_set);
CPU_SET(core, &cpu_set); // lets say 2
pthread_setaffinity_np(th1.native_handle(), sizeof(cpu_set_t), &cpu_set);


th2.join();
th1.join();

, который вызывает непреднамеренное переключение контекста, есть ли способ сказать, что внутреннийснова получить процессор из ОС (без явного соответствия процессору)?

1 Ответ

0 голосов
/ 09 октября 2018

У вас должна быть возможность установить привязку ЦП к самому потоку после того, как он породил всех дочерних элементов, которым не нужны ограничения привязки к ЦП.

...