Использует ли класс Thread несколько ядер?

Я только начал изучать многопоточное программирование. Узнал, что если у процессора одно ядро, то потоки не выполняются одновременно, а лишь периодически переключатся между друг другом. В свою очередь многоядерные процессоры предоставляют действительное одновременное выполнение двух разных потоков.

Вопрос: Использует ли класс Thread() несколько ядер или для этого нужно сделать, что-либо ещё ?


Ответы (1 шт):

Автор решения: S.H.

Вручную точно делать ничего не нужно.

Класс Thread просто служит "интеллектуальной связкой" между Вашим кодом и системным планировщиком процессов. Фактически, какой тред выполняется на каком ядре - решает система.

И делает она это виртуозно - ведь задачи такого рода решаются уже десятки лет, и там всё выверено до миллиметров.

Есть очень редкие исключения, когда программа сама управляет мэппингом тредов на ядра и вообще тредами. Например, известно, что первые вресии Oracle для Windows NT "немножко улучшали" системный стек именно в части работы с процессами и потоками.

Но в остальном - Вам нужно просто использовать класс Thread и положиться на стабильность мироздания.

→ Ссылка