Async() 与线程在性能和控制上的比较

2024-01-05

我正在看GoingNative 2012 第 1 天演讲“C++11 风格”,作者:Bjarne Stroustrup https://www.youtube.com/watch?v=m0H5bUPfwn8,从 1:05:13 开始,他似乎在宣传async()比线程。

我确实想知道,四年过去了,在 C++ 世界中,优点和缺点是什么async()与线程相比,在性能和控制方面?

我迷失了不同的观点:

例如,关于性能: 一个 SO 帖子C++11 线程与异步性能 (VS2013) https://stackoverflow.com/questions/26730287/c11-thread-vs-async-performance-vs2013说创建线程的成本很高(“Windows 操作系统中需要 200 000 个 CPU 周期”),但是async()使用线程池会更便宜;但另一个SO帖子C++11 中的 async(launch::async) 是否会使线程池过时,以避免昂贵的线程创建? https://stackoverflow.com/questions/14351352/will-asynclaunchasync-in-c11-make-thread-pools-obsolete-for-avoiding-expen不这么认为(“操作系统有很多理由应该让线程创建尽可能便宜”)

在控制方面,以前我的印象是线程允许更多的控制;但是一个SO帖子异步与线程,何时使用每个选项? https://stackoverflow.com/questions/13790683/async-vs-threading-when-to-use-each-optionC# 上说“当您需要控制低级线程参数时,线程具有一些优势 - 这是非常罕见的。”

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


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Async() 与线程在性能和控制上的比较 的相关文章