自 VS2010 起,微软就在 CRT 中集成了并发运行时(Concurrency Runtime),并行模式库(PPL,Parallel Patterns Library)是其中的一个重要组成部分。7 年过去了,似乎大家都不怎么Care这个事情,相关文章少少且多是蜻蜓点水。实际上这个库的设计相当精彩,胜过 C++ 标准库中 future/promise/async 系列许多,所以计划写一个系列探讨 PPL 在实际项目中应用中的各种细节。
好了,从最简单的代码开始,先演示下如何使用 task 类和 lambda 表达式创建一个并行任务:
// final_answer.cpp// compile with: /EHsc #include <ppltasks.h>#include <iostream>using namespace concurrency;using namespace std;int main(int argc, char *argv[]) { task<int> final_answer([] { return 42; }); cout << "The final answer is: " << final_answer.get() << endl; return 0; }
使用 Visual Studio 命令行工具编译
cl /EHsc final_answer.cpp
执行结果为:
网友评论