C++ 主控/工人

2024-01-27

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

我的基本要求是:

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

如果这个库还可以:

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

通过类比,我正在寻找类似于 Java 的 ExecutorService 或其他一些类似的线程池库,但在跨平台 C++ 中。有谁知道有这样的野兽吗?

Thanks!


我使用它的时间不够长,所以我不确定它是否完全满足您的需求,但请查看自适应通信环境 (ACE) http://www.cs.wustl.edu/~schmidt/ACE.html。该库允许您构造“活动对象”,这些对象具有工作队列并在自己的线程中执行其主体,以及可以在对象之间共享的线程池。然后,您可以将队列工作对象传递给活动对象以供它们处理。对象可以通过多种方式链接。该库相当繁重,有很多东西需要学习,但是已经有几本关于它的书籍,并且在线也有大量的教程信息。它应该能够做你想做的一切,甚至更多,我唯一关心的是它是否拥有你正在寻找的“开箱即用”的接口,或者你是否需要在它的基础上构建才能得到你想要的东西为了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++ 主控/工人 的相关文章

  • 如何从 C# 中的 dataTable.Select( ) 查询中删除单引号?

    所以我有一个经销商名称列表 我正在我的数据表中搜索它们 问题是 一些傻瓜必须被命名为 Young s 这会导致错误 drs dtDealers Select DealerName dealerName 所以我尝试替换字符串 尽管它对我不起作
  • 适合初学者的良好调试器教程[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有谁知道一个好的初学者教程 在 C 中使用调试器 我感觉自己好像错过了很多 我知道怎么做 单步执行代码并查看局部变量 虽然这常常给我带来问
  • 代码 GetAsyncKeyState(VK_SHIFT) & 0x8000 中的这些数字是什么?它们是必不可少的吗?

    我试图在按下按键的简单动作中找到这些数字及其含义的任何逻辑解释 GetAsyncKeyState VK SHIFT 0x8000 可以使用哪些其他值来代替0x8000它们与按键有什么关系 GetAsyncKeyState 根据文档返回 如果
  • 在c#中执行Redis控制台命令

    我需要从 Redis 控制台获取 客户端列表 输出以在我的 C 应用程序中使用 有没有办法使用 ConnectionMultiplexer 执行该命令 或者是否有内置方法可以查找该信息 CLIENT LIST是 服务器 命令 而不是 数据库
  • 为什么pow函数比简单运算慢?

    从我的一个朋友那里 我听说 pow 函数比简单地将底数乘以它的指数的等价函数要慢 例如 据他介绍 include
  • C++ 是否可以在 MacOS 上与 OpenMP 和 boost 兼容?

    我现在已经尝试了很多事情并得出了一些结论 也许 我监督了一些事情 但似乎我无法完成我想要的事情 问题是 是否有可能使用 OpenMP 和 boost 在 MacOS High Sierra 上编译 C 一些发现 如果我错了请纠正我 Open
  • 当一组凭据下的计划任务启动的进程在另一组凭据下运行另一个程序时,Windows 是否有限制

    所以我有一个简单的例子 其中我有应用程序 A 它对用户 X 本地管理员 有一些硬编码的凭据 然后它使用硬编码的绝对路径启动带有这些凭据的应用程序 B A 和 B 以及 dotnet 控制台应用程序 但是它们不与控制台交互 只是将信息写入文件
  • Visual Studio 在构建后显示假错误

    我使用的是 Visual Studio 2017 构建后 sln在调试模式下 我收到错误 但是 当我通过双击错误列表选项卡中的错误来访问错误时 错误会从页面中消失 并且错误数量也会减少 我不太确定这种行为以及为什么会发生这种情况 有超过 2
  • C# 数据表更新多行

    我如何使用数据表进行多次更新 我找到了这个更新 1 行 http support microsoft com kb 307587 my code public void ExportCSV string SQLSyntax string L
  • unordered_map 中字符串的 C++ 哈希函数

    看起来 C 标准库中没有字符串的哈希函数 这是真的 在任何 c 编译器上使用字符串作为 unordered map 中的键的工作示例是什么 C STL提供模板专业化 http en cppreference com w cpp string
  • Python 属性和 Swig

    我正在尝试使用 swig 为一些 C 代码创建 python 绑定 我似乎遇到了一个问题 试图从我拥有的一些访问器函数创建 python 属性 方法如下 class Player public void entity Entity enti
  • 为什么可以通过ref参数修改readonly字段?

    考虑 class Foo private readonly string value public Foo Bar ref value private void Bar ref string value value hello world
  • C++ 中的双精度型数字

    尽管内部表示有 17 位 但 IEE754 64 位 浮点应该正确表示 15 位有效数字 有没有办法强制第 16 位和第 17 位为零 Ref http msdn microsoft com en us library system dou
  • WPF DataGridTemplateColumn 组合框更新所有行

    我有这个 XAML 它从 ItemSource 是枚举的组合框中选择一个值 我使用的教程是 http www c sharpcorner com uploadfile dpatra combobox in datagrid in wpf h
  • WebBrowser.Print() 等待完成。 。网

    我在 VB NET 中使用 WebBrowser 控件并调用 Print 方法 我正在使用 PDF 打印机进行打印 当调用 Print 时 它不会立即启动 它会等到完成整个子或块的运行代码 我需要确保我正在打印的文件也完整并继续处理该文件
  • 堆栈是向上增长还是向下增长?

    我在 C 中有这段代码 int q 10 int s 5 int a 3 printf Address of a d n int a printf Address of a 1 d n int a 1 printf Address of a
  • GCC 的“-Wl,option”和“-Xlinker option”语法之间有区别吗?

    我一直在查看一些配置文件 并且看到它们都被使用 尽管在不同的体系结构上 如果您在 Linux 机器上使用 GCC 将选项传递给链接器的两种语法之间有区别吗 据我所知 阅读 GCC 手册时 他们的解释几乎相同 From man gcc Xli
  • 为boost python编译的.so找不到模块

    我正在尝试将 C 代码包装到 python 中 只需一个类即可导出两个函数 我编译为map so 当我尝试时import map得到像噪音一样的错误 Traceback most recent call last File
  • 如何减少具有多个单元的 PdfPTable 的内存消耗

    我正在使用 ITextSharp 创建一个 PDF 它由单个 PdfTable 组成 不幸的是 对于特定的数据集 由于创建了大量 PdfPCell 我遇到了内存不足异常 我已经分析了内存使用情况 我有近百万个单元格的 1 2 在这种情况下有
  • 是否可以在不连接数据库的情况下检索 MetadataWorkspace?

    我正在编写一个需要遍历实体框架的测试库MetadataWorkspace对于给定的DbContext类型 但是 由于这是一个测试库 我宁愿不连接到数据库 它引入了测试环境中可能无法使用的依赖项 当我尝试获取参考时MetadataWorksp

随机推荐

  • Git 格式补丁查看器?

    有人正在向我发送由 git format patch 生成的补丁 是否有一个 GUI 在 Linux 上 可以打开这些 patch 文件 我已经尝试了很多 diff gui 但它们所做的只是比较两个现有的文件 文件夹 没有人可以显示补丁 除
  • 在 Python 子进程中使用 Windows 路径(指向可执行文件)

    我开始在安装了 cygwin Python 2 7 的 Windows 7 x64 计算机上开发一个小型 pdf 到 jpg 脚本 以下效果完美 import subprocess filename test subprocess chec
  • 如何在不锁定 GUI 的情况下将数千个项目添加到绑定集合中

    我有一个设置 其中可能有数千个项目 认为 3000 5000 个 将添加到ObservableCollection绑定到一些可视化界面 目前 添加它们的过程非常慢 大约 4 秒 1000 个项目 当然 GUI 在此期间没有响应 有什么好方法
  • 等待 5-10 秒,然后运行 ​​Outlook 代码

    我的 Outlook 规则中有 VBA 代码 我希望当我收到具有特定主题的电子邮件时 Outlook 开始运行脚本 但是 当收到电子邮件时 Outlook 立即开始运行代码以获取上一封电子邮件 这可能是因为电子邮件刚刚收到且尚未移动到特定文
  • Android:将额外内容从一个活动传递到另一活动

    我有一个填充到活动 Main java 的 JSON 文件 此活动显示了来自我的 JSON 条目上的 URL 的 3 个随机图像 我想要做的是 我的 JSON 上有 13 个不同的条目 每当我单击显示的随机图片时 它都会转到另一个活动 Pr
  • keyup 绑定在 Firefox 中不起作用

    你可以在这里看到我的项目 http www inluxphoto com custom jsgallery index php http www inluxphoto com custom jsgallery index php 我试图让左
  • 正则表达式模式“pL”有什么作用? [复制]

    这个问题在这里已经有答案了 有一个常见的正则表达式用于 slugify url pL d u但什么是 pL在第一个preg replace mean 这里有些例子 如何在 slugify 函数中将 替换为 https stackoverfl
  • 通过 Spring Config 将“硬编码”构造函数 Arg Class 传递给 bean

    我有一个正在注入到服务中的通用类型 由于 Java 中泛型的实现方式 我需要一个构造函数 arg 或属性设置器 来保存泛型类型参数的类信息 我的问题是 我可以通过属性注入或指定构造函数参数 用 spring 传入 Class 的实例吗 我确
  • 以编程方式更新 Excel 文档

    首先 我是一家软件开发公司自动化团队的实习学生 因此我帮助在日常构建中开发自动化测试程序 我的直线经理制作了一份 Excel 文档 将用于展示我们测试环境的结果 我们的测试在 hyper V 服务器上的虚拟 PC 上运行 我希望能够使用每个
  • MongoDB批量运算符,如果不存在则插入

    我正在使用 MongoDB 批量操作来插入文档 我想做的是插入 仅当未找到文档时 如果找到文档我不想更新 即 upsert 有什么想法如何做到这一点 然而 即使在这种情况下 var obj item test bulk find item
  • 单个 PDO 查询意外达到 PHP 内存限制?

    我有一个非常简单的查询 如下所示 result pdo gt query SELECT FROM my table foreach result as r do some stuff 但是当我运行这个时 我收到以下错误 致命错误 第 15
  • 如何用Javascript让Javascript运行在页面的最后一个进程

    我遇到了一个麻烦 当页面加载时 我的 Javascript 会运行 并且 JS 日历会在我的 JS 之后加载 因此 我的 JS 不会影响 JS 日历 1 页面加载 2 我的JS运行 3 这里放一些东西 其他JS 4 JS日历启动 我在这里想
  • 将自定义验证规则添加到 Sonata User Bundle

    我已经根据文档安装了 SonataUserBundle 一切正常 除了我无法添加自定义验证规则 我的理解是 新规则应该添加到新的验证组中 然后更新 config yml 以告诉 SonataUserBundle 或 FosUserBundl
  • android中如何保持会话?

    谁能告诉我如何维护用户登录的会话 例如 当用户登录应用程序时 除非用户注销或卸载类似于 Android 中的 gmail 的应用程序 否则他们必须登录 为您开设一堂课SharedPreferences public class Sessio
  • 不区分大小写的令牌匹配

    是否可以将语法设置为不区分大小写匹配 例如一条规则 checkName CHECK Word 会匹配check name也CHECK name 的创造者PEGKit https github com itod pegkit here 当前执
  • Perl 中的 Web 服务客户端

    我是客户端 我希望调用 Web 服务的方法 我有一个 Web 服务地址 svc 后缀 并且有该方法的名称 返回值及其参数 该服务是通过 WCF HTML 端点 实现的 我希望通过以下方式调用这些方法SOAP Lite 我应该为 URI 代理
  • Facebook Connect“下一个”错误

    我正在尝试使用新的 Facebook 身份验证系统 但无法登录 我收到以下错误消息 API错误代码 100 API错误描述 无效参数 错误消息 next 不属于应用程序 发送到 Facebook 的网址是 请注意 网址中的 Next 变量是
  • 在一个查询中获取多个表

    一小时内发了三十个帖子 所以我很抱歉 但我没有得到我想要的 我会尝试解释更多 我有两张桌子 帖子 我想在这一页中显示所有帖子和评论 购买 1 条查询 我在帖子表中 100 个帖子 我在评论表中有 20条评论 我试试这个代码 qq mysql
  • 当我在拒绝后重新提交应用程序时,是否需要增加版本号? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我的应用程序被拒绝了 所以我已修改它并准备重新提交 我第一次提交的时候是1 0版本 这次重新提交是否需要增加版本号 不 您不需要更新版本号
  • C++ 主控/工人

    我正在寻找跨平台 C master worker 库或工作队列库 总体思路是 我的应用程序将创建某种任务或工作对象 将它们传递给工作主机或工作队列 后者又会在单独的线程或进程中执行工作 为了提供一些上下文 该应用程序是一个 CD 抓取器 我