Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 单核Plinq?_C#_.net_.net 4.0_Plinq - Fatal编程技术网

C# 单核Plinq?

C# 单核Plinq?,c#,.net,.net-4.0,plinq,C#,.net,.net 4.0,Plinq,据我所知: 利用多核或多处理器进行编程称为 并行编程 但是如果我没有>1个核呢 命令是否类似于: "abcdef".AsParallel().Select(c=>char.ToUpper(c)).ToArray() 将按顺序运行吗 (我知道,即使我有>1个内核,Plinq优化仍然可以选择不并行。但我的问题是拥有==1个内核。) 或 它仍然可以在多个线程(1个核心)中,如: (但我认为这不会是并行编程) 我有点困惑。任何帮助都将不胜感激。 您可以显式地将最大并发限制提高到该限制以上(或将

据我所知:

利用多核或多处理器进行编程称为 并行编程

但是如果我没有>1个核呢

命令是否类似于:

"abcdef".AsParallel().Select(c=>char.ToUpper(c)).ToArray()
将按顺序运行吗

(我知道,即使我有>1个内核,Plinq优化仍然可以选择不并行。但我的问题是拥有==1个内核。)

它仍然可以在多个线程(1个核心)中,如:

(但我认为这不会是并行编程)

我有点困惑。任何帮助都将不胜感激。

您可以显式地将最大并发限制提高到该限制以上(或将其降低到该限制以下),这样PLinq就可以自由地使用1到线程来完成工作。通常,只有当您的工作受到严重的I/O限制时,提高默认值才有用


换句话说,除非您使用更改默认的并发限制,例如,您的任务将使用单个核心上的单个线程运行。

如果我有3个长计算,则在多线程环境或单线程环境中,所有3个线程的执行时间之和将相同,它只是每次给每个线程一个量……对吗?我知道这个命令
带有degreeofparallelism
,它用于一次阻止5个web服务之类的问题(这不是CPU密集型,而是阻止)WithDegreeOfParallelism也适用于我有8个核但我只想2个用于并行的情况…抱歉:-)但我不知道你的答案如何,回答了我的问题…:-)@RoyiNamir有1个核,PLinq的默认值是使用最大并发度1,也就是说,它将按顺序运行Linq查询。