输入多路复用的 C++ 设计模式?

标签 c++ design-patterns

我必须在我的程序中从多个来源同步读取和处理数据,如下所示:

main
...
while(true)  {
dataSample1 = readInput1...
processData(dataSample1) 
....
dataSample2 = readInput2...
processData(dataSample2) 
}

每个 readInput 都在单独的组件中实现,以处理不同性质的输入(例如套接字、USB 端口等),但数据样本的格式是相同的。问题是 readInput 和 processData 都是阻塞的,所以我必须想出解决方案来多路读取“processData”的输入。这个问题对应于“reactor”还是“proactor”模式?是否有框架可以在不将每个“readInput”移动到单独线程的情况下帮助实现?
谢谢...

最佳答案

您是否能够重写/重新配置各种 readInput 函数以使其成为非阻塞的?如果不是,单独的线程(甚至可能是单独的进程)是让它们并行运行的唯一方法。如果是,那么 react 器模式可以帮助您在每个输入到达时触发正确的处理。

关于输入多路复用的 C++ 设计模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13765564/

相关文章:

c++ - 这个 Pro*C 模式是一种最佳实践,还是有记录?

c++ - 从 C# 背景学习 C++

c++ - 将 '_' 更改为 ' ' 根本不起作用

java - java.util.Time.scheduleXXX() 如何充当中介模式?

c++ - 如何从 rapidjson::Document 获取中文 wstring?

c++ - 检查二维数组中是否存在元素 C++

c++ - 非循环访问者 C++

c# - 评估我的代码设计 - 简单片段

c++ - C++ 中工厂和动态分配的问题

java - 代码味道 - 哪种设计模式以及如何实现?