2014-09-11 2 views
0

Если у меня есть 2 ядра в моем процессоре, и я хочу запустить 4 потока. Можно ли запустить 2 потока на 1-ом ядре и еще 2 потока на 2-ом ядре (с использованием C++ 11 без повышения, os Linux). Или os сделает это для меня? Спасибо.C++ запускает потоки на разных ядрах

+3

Планировщик ОС позаботится об этом. Насколько я знаю, все, что вы можете сделать, это ограничить использование процессоров. Более того, одни и те же потоки могут работать в разных процессорах. –

+2

Да, вы можете использовать более одного потока на одном ядре. Операционная система может выбрать время планирования на основе своей политики –

ответ

1

В стандартном C++ нет возможности выбирать процессорные ядра, и в общем случае нет необходимости делать это. ОС будет выбирать ядра для ваших потоков.

Имейте в виду, что вы не можете даже полагаться на количество постоянных сердечников. Ноутбук или мобильный телефон могут включать и выключать ядра по требованию. Что делать, если вы выбрали ядра?

+1

Однако в Linux существует [sched_setaffinity (2)] (http://man7.org/linux/man-pages/man2/sched_setaffinity.2.html) –

+1

On Windows есть [SetThreadAffinityMask] (http://msdn.microsoft.com/en-us/library/windows/desktop/ms686247 (v = vs.85) .aspx) – rcgldr

Смежные вопросы