据我所理解:
利用多核或多处理器的编程称为并行编程。
但是如果我没有>1 个核心呢?
执行如下命令:
"abcdef".AsParallel().Select(c=>char.ToUpper(c)).ToArray()
将按顺序运行?
(我知道即使我有 >1 个核心,Plinq 优化仍然可以选择不并行。但我的问题是关于拥有 ==1 个核心。)
或者
它仍然可以在多个线程(1个核心)中,例如:
(但恕我直言,它不会是并行编程)
我有点困惑。任何帮助将不胜感激。
您可以显式地将最大并发限制提高到超出该限制(或将其降低到该限制以下),这使 PLinq 可以自由地使用 1 到 <limit> 个线程来完成您的工作。通常提高默认值仅在您的工作受大量 I/O 限制时才有用。
换句话说,除非您使用例如WithDegreeOfParallelism更改默认并发限制,否则您的任务将使用单个内核上的单个线程运行。