Multithreading 多通道信号处理:线程结构

Multithreading 多通道信号处理:线程结构,multithreading,architecture,queue,signal-processing,Multithreading,Architecture,Queue,Signal Processing,我质疑我对多通道信号处理架构的最初想法 这很简单:有一个源和一个接收器,有X个通道和不同的处理步骤(分组),必须应用于每个通道(设置相同,顺序相同) 最后,所有通道必须在接收器处再次同步 对于多线程多通道体系结构,我提出了两种可能的解决方案: 按通道分组: 每个通道的处理都是完全分开的 处理组通过每个通道的一个队列连接 专业人士: 由于通道同步,线程阻塞更少 无需通道合并的数据结构 缺点: 更多队列 按进程分组: 在每个处理组之前合并通道 处理组仅与所有通道的一个队列连接 专业人

我质疑我对多通道信号处理架构的最初想法

这很简单:有一个源和一个接收器,有X个通道和不同的处理步骤(分组),必须应用于每个通道(设置相同,顺序相同)

最后,所有通道必须在接收器处再次同步

对于多线程多通道体系结构,我提出了两种可能的解决方案:

  • 按通道分组

    • 每个通道的处理都是完全分开的
    • 处理组通过每个通道的一个队列连接
    • 专业人士
      • 由于通道同步,线程阻塞更少
      • 无需通道合并的数据结构
    • 缺点
      • 更多队列
  • 按进程分组

    • 在每个处理组之前合并通道
    • 处理组仅与所有通道的一个队列连接
    • 专业人士
      • 少排队
      • 通道在所有处理组上同步
    • 缺点
      • 合并和拆分是必要的
      • 必要时合并所有通道的数据结构

  • 你对这些解决方案有什么看法?我忘了优点/缺点了吗?哪种解决方案更实用?有更合适的解决方案吗?

    看,第二种方法确实可以减少队列,但仍然可以存储相同数量的数据,并对其执行更多操作,这会占用您的处理时间。对于队列的体系结构,您可以简单地使用队列数组,并且在所有通道的数据处理结束时,您可以合并它们并存储结果,或者使用它们执行任何操作

    但这取决于你使用的是什么样的系统——实时的,每次拆分/合并都会花费你昂贵的时间,或者一次接收,然后你就不必太在意处理时间了。如果它是一个单一的接收系统-你可以做任何对你来说更容易-编程时间也很重要


    我希望它能帮助您做出决定。

    您好,像这样的基于意见的问题在Stack Overflow中是离题的。请查看,了解您应该在此处提出哪些问题。@TylerH我不认为这是基于意见的问题,因为这个问题是关于更正确的使用方法。它是关于系统运行时间和性能的,而不是理论上的东西。@KorelK“正确的方法”是当多种方法工作时的一种观点;OP提出多种意见问题,包括逐字逐句地征求我们对它的意见。即使你的回答是“视情况而定”,也没有提供一个具体客观的“正确”方式。