并发运行时

C++ 的并发运行时帮助您编写可靠,可伸缩且具有响应能力的并行应用程序。 它提高了抽象级别,因此您不必管理与并发相关的基础结构详细信息。 您还可以使用它来指定满足应用程序服务质量要求的计划策略。 使用这些资源来帮助您开始使用并发运行时使用。

对于参考文档,请参见 参考(并发运行时)

提示

并发运行时非常依赖 C++11 功能并采用更现代的 C++ 样式。若要了解更多信息,请阅读 返回C++ (现代C++)的欢迎

选择并发运行时功能

并发运行时的概述

了解并发运行时为何重要并介绍其关键功能。

将并发运行时与其他并发模型进行比较

说明并发运行时与其他并发模型(如 Windows 线程池和 OpenMP)的比较情况,以便您可以使用最符合您的应用程序要求的并发模型。

从 OpenMP 迁移至并发运行时

使用并发运行时进行比较 OpenMP 并提供有关如何的示例迁移现有 OpenMP 代码以使用并发运行时。

并行模式库 (PPL)

介绍 PPL,提供并行循环、任务和并行容器。

异步代理库

在应用过程介绍如何使用异步传递轻松地合并数据流和流水线操作任务?的代理和消息。

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

介绍任务计划程序,从而使您可以优化您的桌面 apps 性能使用并发运行时。

PPL 的任务并行度

任务并行(并发运行时)

如何:使用 parallel_invoke 来编写并行排序运行时

如何:使用 parallel_invoke 来执行并行操作

如何:创建在延迟一段时间后完成的任务

描述任务和任务组,可帮助您编写异步代码和并行工作分解为更小的部分。

演练:实现 Future

演示如何将并发运行时函数更执行的操作。

演练:从用户界面线程中移除工作

演示如何移动由 UI 线程对到辅助线程的 MFC 应用程序的工作。

并行模式库中的最佳做法

并发运行时中的常规最佳做法

提供处理提示和最优方法以 PPL。

PPL 中的数据并行

并行算法

如何:编写 parallel_for 循环

如何:编写 parallel_for_each 循环

如何:并行执行映射和减少操作

描述 parallel_forparallel_for_eachparallel_invoke和其他并行算法。 使用并行算法解决涉及数据收集 的数据并行 问题。

并行容器和对象

如何:使用并行容器提高效率

如何:使用 combinable 提高性能

如何:使用 combinable 组合多个集

描述 combinable 选件类、以及 concurrent_vectorconcurrent_queueconcurrent_unordered_map和其他并行容器。 请使用并行容器和对象,您需要提供对元素的线程安全访问的容器时。

并行模式库中的最佳做法

并发运行时中的常规最佳做法

提供处理提示和最优方法以 PPL。

取消任务和并行算法

PPL 中的取消操作

介绍 PPL 中移除的角色,包括如何启动和响应取消请求。

如何:使用取消中断 Parallel 循环

如何:使用异常处理中断 Parallel 循环

演示两种方式取消数据并行工作。

windows 中阿普斯

用 C++ 为 Windows 应用商店应用程序创建异步操作

描述一些要点记住要在使用并发运行时会在 Windows 应用商店 app 的异步操作。

演练:使用任务和 XML HTTP 请求 (IXHR2) 进行连接

演示如何组合 PPL 任务。IXMLHTTPRequest2IXMLHTTPRequest2Callback 接口发送 HTTP GET 和 POST 请求到 Windows 应用商店 app 的 web 服务。

窗口存储 app 示例

包含可下载的代码示例演示和 apps Windows 8的。 C++ 示例使用并发运行时功能 (如 PPL 任务在后台处理数据保持 UX 响应。

编程在异步代理库中的数据流

异步代理

异步消息块

消息传递函数

如何:实现各种制造者-使用者模式

如何:为 call 和 transformer 类提供工作函数

如何:在数据管道中使用转换器

如何:在已完成的任务之间选择

如何:定期发送消息

如何:使用消息块筛选器

描述异步代理,消息块,并且,消息传递函数,用于执行数据操作流成员在并发运行时。

演练:创建基于代理的应用程序

演练:创建数据流代理

演示如何创建基本的基于代理的应用程序。

演练:创建图像处理网络

演示如何创建异步消息块网络执行图像处理。

演练:使用联接避免死锁

通过哲学家就餐问题说明如何使用并发运行时阻止应用程序中发生死锁。

演练:创建自定义消息块

演示如何创建按优先级排序传入消息的消息块类型的自定义消息。

异步代理库中的最佳做法

并发运行时中的常规最佳做法

提供处理提示和最优方法的代理。

异常处理和调试

并发运行时中的异常处理

描述如何使用异常处理并发运行时。

并行诊断工具(并发运行时)

了解如何优化应用程序以及最为高效地使用并发运行时。

调整的性能

并行诊断工具(并发运行时)

了解如何优化应用程序以及最为高效地使用并发运行时。

计划程序实例

如何:管理计划程序实例

计划程序策略

如何:指定特定的计划程序策略

如何:创建使用特定计划程序策略的代理

演示如何使用管理计划程序实例以及计划程序策略。 对桌面 apps,计划程序策略使您能够将特定规则与工作量的特定类型。 例如,您可以创建一个计划程序实例以提升的线程优先级运行部分任务,并使用默认计划程序以普通的线程优先级运行其他任务。

计划组

如何:使用计划组影响执行顺序

演示如何使用计划组。affinitize 或组,相关的任务。 例如,那么,当这些任务受益于执行是在同一处理器节点时,可能需要高度在相关任务中的位置。

轻量级任务

介绍轻量级任务如何为创建不需要负载平衡或移除的工作,因此,它们可用于改编现有代码还可用于使用并发运行时的使用。

上下文

如何:使用上下文类实现协作信号量

如何:使用过度订阅抵消延迟

描述如何控制由并发运行时管理线程的行为。

内存管理函数

如何:使用 Alloc 和 Free 提高内存性能

描述并发运行时提供帮助您分配和释放内存以并发方式的内存管理函数。

其他资源

异步编程模式以及有关在 Hilo 使用 C++ 和 XAML,(windows 存储 apps)

了解我们如何在 Hilo 使用并发运行时实现异步操作,Windows 应用商店 app 使用 C++ 和 XAML。

代码并发运行时的示例和 Visual Studio 的并行模式库 2010 中

提供演示并发运行时的示例应用程序和实用工具。

Parallel Programming in Native Code blog(本机代码博客中的并行编程)

提供有关并发运行时中并行编程的其他更详细的博客文章。

Parallel Computing in C++ and Native Code forum(C++ 和本机代码论坛中的并行计算)

使您能够参与有关并发运行时的社区讨论。

.NET Framework 中的并行编程

了解有关可用于 .NET Framework 的并行编程模型。

请参见

其他资源

参考(并发运行时)