gpt4 book ai didi

c++ - 标准 C++ 中的异步线程

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:27:04 28 4
gpt4 key购买 nike

我想知道如何在标准 C++ 中实现异步调用。

我有一个图像/视频处理程序,我想添加另一个功能/特性,但我希望它在另一个线程中运行或与原始线程异步运行。

我只想在这个新线程中发生某些事情时通知主线程。 (这并不总是发生,并且主线程没有理由等待这个新进程结束。因此我更喜欢异步调用,如果它比多线程编程更简单的话)

我希望我走在正确的道路上。

提前致谢。

伊格纳西奥。

更新:目前我还没有使用任何线程库,因为直到现在我还不需要它。我在想在 Boost 中……这是个好主意吗?如果我想开始进行一些异步调用,我应该从哪里开始?

最佳答案

当前的 C++ 标准没有定义这样的东西,但是 C++0x 定义了。这留下了几个选择。最干净的方法可能是使用包含 C++ future 类(和相关类)的当前实现。这似乎正是您正在寻找的那种东西。根据您使用的编译器,支持可能已经打包(例如,我相信它通常包含在 gcc 4.5 中),或者您可能想要/需要使用 Boost 版本(尽管我不认为它是官方的一部分Boost 版本——您需要查看保险库)。

否则,您可以通过生成线程池并向其提交任务来自己做一些事情。如果您决定这样做,我的建议是尽可能遵循 future 的标准接口(interface);几乎不可避免的是,在某个时候您会有可用的 Future,并且可能更愿意使用它们而不是维护您自己的版本。

关于c++ - 标准 C++ 中的异步线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3711368/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com