并发运行时
适用于 C++ 的并发运行时可帮助你编写可靠、可伸缩且响应迅速的并行应用程序。 它提升了抽象级别,因此无需管理与并发相关的基础结构详细信息。 你还可以使用它来指定符合应用程序服务要求质量的计划策略。 使用这些资源帮助你开始使用并发运行时。
有关参考文档,请参阅参考(并发运行时)。
提示
并发运行时十分依赖 C++11 功能,并采用更现代的 C++ 样式。若要了解详细信息,请阅读欢迎回到 C++(现代 C++)。
选择并发运行时功能
讲解并发运行时之所以重要的原因并介绍它的主要功能。 |
|
演示并发运行时如何与其他并发模型(例如 Windows 线程池和 OpenMP)进行比较,以便你能够使用最适合你应用程序要求的并发模型。 |
|
将 OpenMP 与并发运行时进行比较,并提供有关如何迁移现有 OpenMP 代码以使用并发运行时的示例。 |
|
向你介绍 PPL,它提供并行循环、任务和并行容器。 |
|
向你介绍如何使用异步代理和消息传递来轻松地将数据流和流水线操作任务合并到应用程序中。 |
|
向你介绍任务计划程序,它使你能够微调使用并发运行时的桌面应用的性能。 |
PPL 中的任务并行度
介绍任务和任务组,它们可帮助你编写异步代码并将并行工作分解为较小的部分。 |
|
演示如何组合使用并发运行时功能来完成更多任务。 |
|
演示如何将由 MFC 应用程序中的 UI 线程执行的工作移到工作线程中。 |
|
提供使用 PPL 的提示和最佳做法。 |
PPL 中的数据并行度
介绍 parallel_for、parallel_for_each、parallel_invoke 和其他并行算法。 使用并行算法来解决涉及数据集合的数据并行问题。 |
|
介绍 combinable 类,以及 concurrent_vector、concurrent_queue、concurrent_unordered_map 和其他并行容器。 当你需要提供对其元素的线程安全访问的容器时,请使用并行容器和对象。 |
|
提供使用 PPL 的提示和最佳做法。 |
取消任务和并行算法
介绍 PPL 中取消操作的角色,包括如何启动和相应取消请求。 |
|
演示取消数据并行工作的两种方法。 |
Windows 应用商店应用程序
介绍在 Windows 应用商店 应用中使用并发运行时生成异步操作时要记住的一些重点。 |
|
演示如何组合使用 PPL 任务和 IXMLHTTPRequest2 及 IXMLHTTPRequest2Callback 接口,以便在 Windows 应用商店 应用中将 HTTP GET 和 POST 请求发送到 Web 服务。 |
|
包含 Windows 8 的可下载代码示例和演示应用。 C++ 示例使用 PPL 任务等并发运行时功能在后台处理数据,以保持 UX 随时响应。 |
异步代理库中的数据流编程
介绍异步代理、消息块和消息传递函数,它们是在并发运行时中执行数据流操作的构建基块。 |
|
演示如何创建基本的基于代理的应用程序。 |
|
演示如何创建执行图像处理的异步消息块网络。 |
|
通过哲学家就餐问题说明如何使用并发运行时来避免应用程序中发生死锁。 |
|
演示如何创建根据优先级对传入消息进行排序的自定义消息块类型。 |
|
提供使用代理的提示和最佳做法。 |
异常处理和调试
介绍如何处理并发运行时中的异常。 |
|
讲解如何微调应用程序以及最有效地利用并发运行时。 |
调整性能
讲解如何微调应用程序以及最有效地利用并发运行时。 |
|
演示如何使用管理计划程序实例和计划程序策略。 对于桌面应用,计划程序策略使你能够将特定规则与特定工作负载类型关联。 例如,你可以创建一个计划程序实例来以提升的线程优先级运行一些任务,并使用默认计划程序以普通线程优先级运行其他任务。 |
|
演示如何使用计划组来关联相关任务或将它们组合到一起。 例如,当相关任务从在同一处理器节点上执行中获益时,你可能需要这些任务具有高度的局域性。 |
|
说明轻量级任务如何有助于创建不需要负载平衡或取消的工作,以及它们如何有助于调整现有代码以便与并发运行时一起使用。 |
|
介绍如何控制由并发运行时管理的线程的行为。 |
|
介绍并发运行时提供的内存管理函数,可帮助你以并发方式分配和释放内存。 |
其他资源
了解我们如何使用并发运行时在 Hilo(一个使用 C++ 和 XAML 的 Windows 应用商店 应用)中实现异步操作。 |
|
提供演示并发运行时的示例应用程序和实用程序。 |
|
提供有关并发运行时中的并行编程的其他深度博客文章。 |
|
使你能够参与关于并发运行时的社区讨论。 |
|
讲解关于 .NET Framework 中可用的并行编程模型的内容。 |