Skip to content

C# 多线程 07-使用 PLINQ 00-简介

🏷️ 《C# 多线程》

并行库

并行库随着 .NET Framework 4.0 一起发布,包含三大主要部分:

  • 任务并行库(TPL)

  • 并发集合

  • 并行 LINQ(或 PLINQ)

编程模型

  • 任务并行(task parallelism)

    • 将程序分割成一组任务并使用不同的线程来运行不同的任务

    • 无结构并行(unstructured parallelism)

  • 数据并行(data parallelism)

    • 将数据分割成较小的数据块,对这些数据块进行并行运算,然后聚合这些计算结果

    • 结构并行(structured parallelism)

Parallel

任务并行库中有一个名为 Parallel 的类,其提供了一组 API 用来实现结构并行。

它仍然是 TPL 的一部分。

当使用 Parallel 类的 API 时,无需提供分割工作的细节,但仍要显示定义如何从分割的结果中得到单个结果。

PLINQ

PLINQ 具有最高级抽象。

它自动将数据分割为数据块,并且决定是否真的需要并行化查询,或者使用通常的顺序查询处理更高效。

PLINQ 基础设置会将分割任务的执行结果组合到一起。

有很多选项可供程序员优化,使用尽可能高的性能获取结果。