通过编程发挥多核或多处理器优势的方式称为并行编程。它是多线程这个更宽泛概念的一个子集。
多线程API和以下可以发挥多核处理器能力的各种结构:
- 并行LINQ(PLINQ)
- Parallel类
- 任务并行结构
- 并发集合
这些类型一般统称为并行框架(Parallel Framework,PFX)。
Parallel类和任务并行结构统称为任务并行库(Task parallel Library,TPL)。
PFX
PFX概念
在线程间划分工作的策略有两种:数据并行和任务并行。
当一组任务需要处理很多的数据值时,我们可以令每一个线程以相同的方式处理一部分数据值,这称为数据并行,即将数据在线程间进行了划分。
相对地,任务并行则是划分任务,即每一个线程处理不同的任务。
PFX组件
PFX包含两层功能,上层结构由两种结构化数据并行API组成:PLINQ和Parallel类。下层结构则由任务并行类和辅助并行编程活动的结构组成。
PLINQ提供了丰富的功能:它能够自动完成并行工作,包括将工作划分成任务,在线程上执行任务,以及将结果整理为一个输出序列。它是声明式的,因为只要使用LINQ查询声明需要并行化的工作,然后让框架去处理实现细节即可。与声明式相对的形式是命令式(imperative),需要显式进行编码来执行划分和整理工作。
如下表所示:若使用Parallel类,则必须自行进行整理工作;若使用任务并行结构,还必须自行完成任务划分的工作。
划分工作 | 整理工作 | |
---|---|---|
PLINQ | 是 | 是 |
Parallel类 | 是 | 否 |
PFX任务并行 | 否 | 否 |
PFX主要用于并行编程,即利用多核处理器来加速计算密集型代码的执行速度。
标签:简要,C#,编程,并行,任务,PFX,Parallel,PLINQ From: https://www.cnblogs.com/nullcodeworld/p/16646898.html