任务计划程序(并发运行时)

文档这一部分的主题介绍并发运行时任务计划程序的重要功能。 如果希望微调并发运行时的现有代码的性能,则任务计划程序会很有用。

重要

无法从通用 Windows 平台 (UWP) 应用获取任务计划程序。 有关详细信息,请参阅用 C++ 为 UWP 应用创建异步操作

在 Visual Studio 2015 及更高版本中,concurrency::task 类和 ppltasks.h 中的相关类型使用 Windows 线程池作为其计划程序。 本主题不再适用于在 ppltasks.h 中定义的类型。 并行算法(例如 parallel_for)继续使用并发运行时作为默认计划程序。

提示

并发运行时提供了一个默认计划程序,因此无需在应用程序中创建一个。 由于任务计划程序有助于优化应用程序的性能,如果你刚开始接触并发运行时,建议从使用并行模式库 (PPL)异步代理库开始。

任务计划程序在运行时计划和协调任务。 任务是指执行特定作业的工作单元。 任务通常可以与其他任务并行运行。 任务组项、并行算法和异步代理所执行的工作都属于任务示例。

任务计划程序可以管理关于在具有多个计算资源的计算机上高效执行计划任务的详细信息。 任务计划程序还使用基础操作系统的最新功能。 因此,使用并发运行时的应用程序会自动缩放,并提高具有扩展功能的硬件性能。

与其他并发模型进行比较介绍了抢先式和协作式计划机制之间的差异。 任务计划程序将操作系统的抢先式计划程序与协作式计划和工作窃取算法配合使用,以达到处理资源的最大使用率。

并发运行时提供了默认计划程序,因此你无需管理基础结构详细信息。 因此,通常不会直接使用任务计划程序。 但是,为了满足应用程序的质量要求,你可以使用任务计划程序提供自己的计划策略或将计划程序与特定任务相关联。 例如,假设你有一个作用范围不超过四个处理器的并行排序例程。 你可以使用计划程序策略来创建可生成不超过四个并发任务的计划程序。 通过在此计划程序上运行排序例程,可使其他活动计划程序使用剩余的任何处理资源。

Title 说明
计划程序实例 介绍计划程序实例以及如何使用 concurrency::Schedulerconcurrency::CurrentScheduler 类来管理它们。 当希望将显式计划策略与特定类型的工作负荷相关联时,可使用计划程序实例。
计划程序策略 介绍计划程序策略的角色。 当希望控制计划程序在管理任务时使用的策略时,可使用计划程序策略。
计划组 介绍计划组的角色。 当你需要在任务之间处于较高位置时(例如,当一组相关的任务受益于在相同的处理器节点上执行操作时),可使用计划组。
轻量级任务 介绍轻量级任务的角色。 当改编现有代码以使用并发运行时的计划功能时,轻量级任务非常有用。
上下文 介绍上下文的角色、concurrency::wait 函数和 concurrency::Context 类。 如果你需要对上下文何时阻止、取消阻止和生成进行控制,或者你希望何时在应用程序中启用超额订阅进行控制,请使用此功能。
内存管理函数 介绍 concurrency::Allocconcurrency::Free 函数。 通过以并发方式分配和释放内存,这些函数可以提高内存性能。
与其他并发模型进行比较 介绍抢先式和协作式计划机制之间的差异。
并行模式库 (PPL) 介绍如何在应用程序中使用各种并行模式(例如并行算法)。
异步代理库 介绍如何在应用程序中使用异步代理。
并发运行时 描述可以简化并发编程并包含相关主题链接的并发运行时。