Async()vs性能和控制的线程

时间:2016-09-11 12:51:11

标签: c++ multithreading asynchronous

我正在看GoingNative 2012 Day 1 talk "C++11 style" by Bjarne Stroustrup,因为1:05:13他似乎在宣传async()而不是线索。

我很惊讶,现在已经过去了4年,在C ++世界中,async()与线程在性能和控制方面的优缺点是什么?

我迷失了不同的意见:

例如,关于表现: 一篇SO帖子C++11 thread vs async performance (VS2013)表示创建一个线程很昂贵(“Windows操作系统中的200 000个CPU周期”),但async()将利用线程池更便宜;但是另一篇SO帖子Will async(launch::async) in C++11 make thread pools obsolete for avoiding expensive thread creation?并不这么认为(“操作系统有很多理由他们应该尽可能便宜地创建线程”)

在控制方面,以前我的印象是线程允许更多的控制;但是C#上的SO async vs threading, when to use each option?说“当你对低级线程参数进行控制时,线程有一些优点 - 这是非常罕见的。”

另外,我认为性能/控制很大程度上取决于实现。所以我想,在Bjarne推广async() 4年后,在性能和控制方面,与线程相比,它在C ++世界中的表现如何?

0 个答案:

没有答案