';愉快地平行';PLINQ查询

本文关键字:PLINQ 查询 | 更新日期: 2023-09-27 18:22:30

此示例来自PLINQ MSDN文章:

http://msdn.microsoft.com/en-us/library/dd997399.aspx

var queryA = from num in numberList.AsParallel()
         select ExpensiveFunction(num); //good for PLINQ
var queryB = from num in numberList.AsParallel()
         where num % 2 > 0
         select num; //not as good for PLINQ

为什么queryB不被认为是"令人愉快的并行"?这似乎是在多个线程上拆分的理想选择,因为列表中的每个元素都独立于其他元素。

';愉快地平行';PLINQ查询

第二个例子之所以不是并行化的好候选者,只是因为在多个线程上拆分工作所产生的开销通常很高,因此并行完成的工作必须超过该开销。廉价的手术不是一个好的选择。