任务计划程序(并发运行时)
主题在文档的这部分介绍并发运行时任务计划程序的重要功能。 如果您希望优化使用并发运行时的现有代码的性能,则任务计划程序很有用。
重要
任务计划程序从 Windows 应用商店 应用不可用。有关详细信息,请参阅用 C++ 为 Windows 应用商店应用程序创建异步操作。
提示
并发运行时提供默认的计划程序,因此您不需要在应用程序中再创建一个计划程序。由于任务计划程序可帮助您优化应用程序的性能,因此,如果您初次接触并发运行时,则建议您先使用 并行模式库 (PPL) 或 异步代理库。
任务计划程序可在运行时计划和协调任务。 “任务”是执行特定作业的工作单元。 一项任务通常可与其他任务并行运行。 任务组项目、并行算法和异步代理所执行的工作都属于任务范畴。
任务计划程序管理与在具有多个计算资源的计算机上高效计划任务相关的详细信息。 任务计划程序还使用基础操作系统的最新功能。 因此,使用并发运行时的应用程序能够在具有扩展功能的硬件上自动进行伸缩和改进。
将并发运行时与其他并发模型进行比较描述了抢先式和协作式计划机制之间的差异。 任务计划程序将操作系统的抢先式计划程序与协作式计划和工作窃取算法配合使用,以达到处理资源的最大使用率。
并发运行时提供了默认计划程序,因此您无需管理基础结构详细信息。 因此,一般不直接使用任务计划程序。 但是,为了满足应用程序的质量要求,您可以使用任务计划程序提供自己的计划策略或将计划程序与特定任务相关联。 例如,假设您具有一个作用范围不超过四个处理器的并行排序例程。 您可以使用计划程序策略来创建可生成不超过四个并行任务的计划程序。 通过在此计划程序上运行排序例程,可使其他活动计划程序使用剩余的任何处理资源。
相关主题
标题 |
说明 |
---|---|
介绍计划程序实例以及如何使用 concurrency::Scheduler 和 concurrency::CurrentScheduler 类来管理它们。 如果您希望将显式计划策略与特定类型的工作负载相关联,请使用计划程序实例。 |
|
介绍计划程序策略的作用。 如果您希望控制计划程序在管理任务时使用的策略,请使用计划程序策略。 |
|
介绍计划组的作用。 当您需要在任务之间处于较高位置时(例如,当一组相关的任务受益于在相同的处理器节点上执行操作时),可使用计划组。 |
|
介绍轻量级任务的作用。 改编现有代码以使用并发运行时的日程排定功能时,轻量级任务很有用。 |
|
介绍上下文的作用、concurrency::wait 函数以及 concurrency::Context 类。 如果您需要对上下文何时停滞、恢复运行和做出让步,或者您希望何时在应用程序中启用超额订阅进行控制,请使用此功能。 |
|
介绍 concurrency::Alloc 和 concurrency::Free 函数。 通过以并发方式分配和释放内存,这些函数可以提高内存性能。 |
|
描述抢先式和协作式计划机制之间的差异。 |
|
描述如何在应用程序中使用各种并行模式(例如并行算法)。 |
|
描述如何在应用程序中使用异步代理。 |
|
描述可简化并行编程的并发运行时,并包含指向相关主题的链接。 |