据我了解,Plinq 按核心数决定要打开多少线程(每个线程在不同核心上的线程上)。
__________
Core 1
Core 2
Core 3
Core 4
___________
因此,如果我有一个 Plinq 任务找到所有前 1000 个素数,Plink 将打开一个新任务Thread on each Core
以最大限度地提高效率。
所以在这里,每个核心将运行在 1000/4 个数字上,即寻找素数的逻辑。
但是,我读过IO
应该使用类似的阻塞操作,WithDegreeOfParallelism
这样 cpu 就不会认为这是一个密集的 cpu 操作,并且它允许使用more
线程而不是cores
.
问题 :
1)它准确吗?我理解正确吗?
2)如果我WithDegreeOfParallelism (7)
这样设置,它肯定会使用所有 4 个核心,但其他 3 个呢?(7-4) 他们会跑到哪里去?在哪个核心/秒上?