【发布时间】:2023-03-05 13:56:01
【问题描述】:
谁能给出关于何时使用它们的高级直觉?
参考资料:
【问题讨论】:
-
使用您知道如何应用于您的问题的任何一个。有些问题可以更好地映射到其中一个,这自然会反映在您的思考中。
-
但是它们是等价的吗?我不这么认为。 std::async 只是为了让生活更轻松还是为了解决以前的 C++ 问题?
-
有趣的阅读(关于
std::async)如果使用g++:async(f) isn't.,还有this -
@JaviV:他们在非常不同的抽象级别上解决了相同的问题(并发)。
-
@JaviV 它们大多是不相关的问题(延迟异步甚至不会在与等待它的线程不同的线程上执行)。它们有时在概念上大部分是等效的(例如,启动一些任务并立即获得相应的期货或加入相应的线程)。有时它们是互补的(例如,创建许多延迟异步,其中关联的期货在线程池上执行)。有时这两个概念中只有一个与问题相关(例如,线程仅用作监控或 GUI 线程;延迟异步仅用于实现延迟评估)
标签: c++ multithreading c++11 stdasync