Использует ли класс Thread несколько ядер?
Я только начал изучать многопоточное программирование. Узнал, что если у процессора одно ядро, то потоки не выполняются одновременно, а лишь периодически переключатся между друг другом. В свою очередь многоядерные процессоры предоставляют действительное одновременное выполнение двух разных потоков.
Вопрос: Использует ли класс Thread() несколько ядер или для этого нужно сделать, что-либо ещё ?
Ответы (1 шт):
Вручную точно делать ничего не нужно.
Класс Thread просто служит "интеллектуальной связкой" между Вашим кодом и системным планировщиком процессов. Фактически, какой тред выполняется на каком ядре - решает система.
И делает она это виртуозно - ведь задачи такого рода решаются уже десятки лет, и там всё выверено до миллиметров.
Есть очень редкие исключения, когда программа сама управляет мэппингом тредов на ядра и вообще тредами. Например, известно, что первые вресии Oracle для Windows NT "немножко улучшали" системный стек именно в части работы с процессами и потоками.
Но в остальном - Вам нужно просто использовать класс Thread и положиться на стабильность мироздания.