gpt4 book ai didi

C++ 主/工

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

我正在寻找一个跨平台的 C++ master/worker 库或工作队列库。一般的想法是我的应用程序将创建某种任务或工作对象,将它们传递给工作主机或工作队列,这将依次在单独的线程或进程中执行工作。为了提供一些上下文,该应用程序是一个 CD 翻录器,我想要并行化的任务是“翻录轨道”、“将 WAV 编码为 Mp3”等。

我的基本要求是:

  • 必须支持可配置数量的并发任务。
  • 必须支持任务之间的依赖关系,以便在它们所依赖的所有任务都完成之前不会执行任务。
  • 必须允许取消任务(或者至少不能阻止我将取消编码到我自己的任务中)。
  • 必须允许将状态和进度信息报告回主应用程序线程。
  • 必须在 Windows、Mac OS X 和 Linux 上工作
  • 必须是开源的。

如果这个库也能:

  • 与 Qt 的信号/槽机制集成。
  • 支持使用线程进程来执行任务。

打个比方,我正在寻找类似于 Java 的 ExecutorService 或其他类似线程池库的东西,但在跨平台 C++ 中。有人知道这样的野兽吗?

谢谢!

最佳答案

我使用它的时间不够长,所以我不确定它是否完全满足您的需求,但请查看 Adaptive Communications Environment (ACE) .该库允许您构建具有工作队列并在自己的线程中执行其主体的“事件对象”,以及可以在对象之间共享的线程池。然后您可以将队列工作对象传递给事件对象以供它们处理。可以通过多种方式链接对象。这个库相当繁重,有很多东西需要学习,但是已经有几本关于它的书,也有相当多的在线教程信息。它应该能够做你想做的一切以及更多,我唯一关心的是它是否拥有你正在寻找的“开箱即用”的界面,或者你是否需要在它之上构建以获得你正在寻找的东西为。

关于C++ 主/工,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1060839/

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