自 VS2010 起,微软就在 CRT 中集成了并发运行时(Concurrency Runtime),并行模式库(PPL,Parallel Patterns Library)是其中的一个重要组成部分。7 年过去了,似乎大家都不怎么Care这个事情,相关文章少少且多是蜻蜓点水。实际上这个库的设计相当精彩,胜过 C++ 标准库中 future/promise/async 系列许多,所以计划写一个系列探讨 PPL 在实际项目中应用中的各种细节。

 

好了,从最简单的代码开始,先演示下如何使用 task 类和 lambda 表达式创建一个并行任务:

iOS培训,Swift培训,苹果开发培训,移动开发培训

// 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;
}

iOS培训,Swift培训,苹果开发培训,移动开发培训

使用 Visual Studio 命令行工具编译

cl /EHsc final_answer.cpp

执行结果为:

网友评论