【问题标题】:'Delightfully parallel' PLINQ queries“令人愉快的并行”PLINQ 查询
【发布时间】:2012-02-03 02:40:21
【问题描述】:

此示例来自 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 视为“令人愉快的并行”?这似乎是在多个线程上拆分的理想选择,因为列表中的每个元素都独立于其他元素。

【问题讨论】:

  • 引用 - “queryB 可能不是一个好的候选,因为 Select 语句中没有足够的工作,并行化的开销将抵消大部分或全部加速”
  • 如你所见,这个世界上有两种人:user981225 和 user1096188。

标签: c# .net plinq


【解决方案1】:

第二个示例不适合并行化的原因仅仅是因为将工作拆分到多个线程所产生的开销通常很高,因此并行完成的工作必须超过该开销。廉价的操作不是一个好的选择。

【讨论】:

    猜你喜欢
    • 2014-10-11
    • 1970-01-01
    • 1970-01-01
    • 2012-03-09
    • 1970-01-01
    • 1970-01-01
    • 2017-06-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多