Насколько я понял, Plinq решает, сколько потоков открывать (каждому в потоке на разных ядрах )по количеству ядер.
__________
Core 1
Core 2
Core 3
Core 4
___________
Итак, если у меня есть задача Plinq, которая находит все первые 1000 простых чисел, Plink откроет новый Thread on each Core
, чтобы максимизировать эффективность.
Итак, здесь каждое ядро будет работать с числами 1000/4, логика нахождения простых чисел.
Однако я читал, что блокирующие операции, такие как IO
, следует использовать с WithDegreeOfParallelism
, чтобы процессор не думал, что это интенсивная операция процессора, и это позволяло использовать more
потоки, чем cores
.
Вопрос:
1 )Это точно? Я правильно понял?
2 )Если я установлю WithDegreeOfParallelism (7)
, он определенно будет использовать все 4 ядра, но как насчет остальных 3? (7 -4 )куда они побегут? на каком ядре/ядрах?