如何在 C++ 中运行异步增强功能?
Posted
技术标签:
【中文标题】如何在 C++ 中运行异步增强功能?【英文标题】:Howto run async boost function in c++? 【发布时间】:2018-08-29 04:22:40 【问题描述】:有谁知道我如何使用 boost 运行异步函数,假设我想异步运行 foo 和 bar 函数?类似于 python 中的 asyncio 函数。
演示代码
void foo()
void bar()
int main() return 0;
提前致谢。
【问题讨论】:
你是说喜欢threads吗?还是std::async
?您能否详细说明您遇到并想要解决的问题?
编辑了问题
喜欢 std::async,但我不想等待未来
【参考方案1】:
如果您只想并行运行foo
和bar
,可以使用<future>
- 不需要Boost:
int main()
auto f = std::async(std::launch::async, &foo);
bar();
【讨论】:
但我不想等待未来的结果。 @user1779646:提供一个你想做什么的例子。你为什么要打电话给foo
,而不是等待它完成......?
它们都会在程序的生命周期内继续产生结果,并在它们之间共享结果。
@user1779646 看起来你想要的是threads。函数独立于程序其余部分运行的地方。
@user1779646 我建议对此有所了解。没有“共享结果”之类的东西,除非您先等待它(那是一场数据竞赛),也没有“以相同的速度运行”之类的东西。线程要么运行,要么不运行。操作系统会安排这些。以上是关于如何在 C++ 中运行异步增强功能?的主要内容,如果未能解决你的问题,请参考以下文章
想要求教大家,关于在visualbox上安装的kali2.0,想用虚拟机的增强功能,现在卡在这一步
Oracle12c中性能优化&功能增强新特性之全局索引DROP和TRUNCATE 分区的异步维护