gpt4 book ai didi

c++ - c++11中的线程池和执行队列

转载 作者:搜寻专家 更新时间:2023-10-31 01:08:30 24 4
gpt4 key购买 nike

我有一堆并行任务要完成,但只有几个工作线程(比如 8 个,但我希望它是可配置的)。

因此,运行 8 个线程,并且每个线程都会从队列中弹出下一个任务,只要队列中有任务即可。

C++11 是否提供任何内置结构来帮助实现此设计?

我看到一些与 std::async 相关的类似讨论,但我认为它给编译器的实现留下了太多的余地。

最佳答案

你可以有std::vector<std::thread>如果你想要池和工作队列,你必须在 C++11 中自己实现。

如果您想要通用线程池实现,那么 Boost.Asio包含一个。你只需要 io_service::run()从几个线程建立一个线程池,然后可以用 io_service::post() 给出池的工作。 .非常干净、简单和通用只有那个名字io_service如果您所做的工作与 I/O 无关,则会造成混淆。

关于c++ - c++11中的线程池和执行队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17961899/

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