gpt4 book ai didi

C++/boost : how to signal async task completion?

转载 作者:行者123 更新时间:2023-11-30 05:32:43 25 4
gpt4 key购买 nike

我有一个异步执行任务的线程池。但是我需要等待某个任务完成才能继续(不允许在当前线程中运行任务,任务必须由工作线程运行)。

使用 C++11 或 Boost 实现此目的的最简单方法是什么?

  pool.enqueue([]() {
std::this_thread::sleep_for(2s); // task 1
// notify task 1 completion???
std::this_thread::sleep_for(2s); // task 2
});
// wait until task 1 is complete???

最佳答案

如果你有一个线程池,要么该池应该处理依赖关系,要么您应该直接从第一个任务链接后续任务。

否则,池可能会死锁。想象一下,例如一个有 1 个线程的池。它会无限期地阻塞。给定足够的任务相互依赖性,许多线程也会发生同样的情况。

关于C++/boost : how to signal async task completion?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35039705/

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