Multithreading 多通道信号处理:线程结构
我质疑我对多通道信号处理架构的最初想法 这很简单:有一个源和一个接收器,有X个通道和不同的处理步骤(分组),必须应用于每个通道(设置相同,顺序相同) 最后,所有通道必须在接收器处再次同步 对于多线程多通道体系结构,我提出了两种可能的解决方案:Multithreading 多通道信号处理:线程结构,multithreading,architecture,queue,signal-processing,Multithreading,Architecture,Queue,Signal Processing,我质疑我对多通道信号处理架构的最初想法 这很简单:有一个源和一个接收器,有X个通道和不同的处理步骤(分组),必须应用于每个通道(设置相同,顺序相同) 最后,所有通道必须在接收器处再次同步 对于多线程多通道体系结构,我提出了两种可能的解决方案: 按通道分组: 每个通道的处理都是完全分开的 处理组通过每个通道的一个队列连接 专业人士: 由于通道同步,线程阻塞更少 无需通道合并的数据结构 缺点: 更多队列 按进程分组: 在每个处理组之前合并通道 处理组仅与所有通道的一个队列连接 专业人
- 每个通道的处理都是完全分开的
- 处理组通过每个通道的一个队列连接
- 专业人士:
- 由于通道同步,线程阻塞更少
- 无需通道合并的数据结构
- 缺点:
- 更多队列
- 在每个处理组之前合并通道
- 处理组仅与所有通道的一个队列连接
- 专业人士:
- 少排队
- 通道在所有处理组上同步
- 缺点:
- 合并和拆分是必要的
- 必要时合并所有通道的数据结构
你对这些解决方案有什么看法?我忘了优点/缺点了吗?哪种解决方案更实用?有更合适的解决方案吗?看,第二种方法确实可以减少队列,但仍然可以存储相同数量的数据,并对其执行更多操作,这会占用您的处理时间。对于队列的体系结构,您可以简单地使用队列数组,并且在所有通道的数据处理结束时,您可以合并它们并存储结果,或者使用它们执行任何操作 但这取决于你使用的是什么样的系统——实时的,每次拆分/合并都会花费你昂贵的时间,或者一次接收,然后你就不必太在意处理时间了。如果它是一个单一的接收系统-你可以做任何对你来说更容易-编程时间也很重要
我希望它能帮助您做出决定。您好,像这样的基于意见的问题在Stack Overflow中是离题的。请查看,了解您应该在此处提出哪些问题。@TylerH我不认为这是基于意见的问题,因为这个问题是关于更正确的使用方法。它是关于系统运行时间和性能的,而不是理论上的东西。@KorelK“正确的方法”是当多种方法工作时的一种观点;OP提出多种意见问题,包括逐字逐句地征求我们对它的意见。即使你的回答是“视情况而定”,也没有提供一个具体客观的“正确”方式。