任务并行库(TPL)是一组在 System.Threading 和 System.Threading.Tasks 命名空间中的公共类型和 API。 TPL 的目的是通过简化向应用程序添加并行度和并发的过程,提高开发人员的工作效率。 TPL 动态缩放并发程度,以最高效地使用所有可用的处理器。 此外,TPL 还负责处理工作分区、ThreadPool 上的线程调度、取消支持、状态管理以及其他底层细节。 通过使用 TPL,你可以最大程度地提高代码的性能,同时专注于程序旨在完成的工作。
在 .NET Framework 4 中,TPL 是编写多线程和并行代码的首选方法。 但是,并非所有代码都适合并行化。 例如,如果循环对每次迭代只执行少量工作,或者它不运行多次迭代,则并行化开销可能会导致代码运行速度更慢。 此外,并行化(与任何多线程代码一样)会增加程序执行的复杂性。 尽管 TPL 简化了多线程方案,但我们建议你基本了解线程处理概念,例如锁、死锁和争用条件,以便可以有效地使用 TPL。
相关文章
标题 | DESCRIPTION |
---|---|
数据并行度 | 介绍如何创建并行 for 和 foreach 循环(For 以及 For Each Visual Basic 中)。 |
基于任务的异步编程 | 描述如何通过使用 Parallel.Invoke 隐式创建和运行任务,或通过直接使用 Task 对象显式创建和运行任务。 |
数据流 | 介绍如何使用 TPL 数据流库中的数据流组件来处理多个作。 这些操作必须相互通信,并在数据可用时处理数据。 |
数据和任务并行度的潜在缺陷 | 描述一些常见的陷阱以及如何避免这些陷阱。 |
并行 LINQ (PLINQ) | 介绍如何使用 LINQ 查询实现数据并行。 |
并行编程 | .NET 并行编程的顶级节点。 |