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

时间:2012-12-07 14:58:25

标签: c++ design-patterns

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

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

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

1 个答案:

答案 0 :(得分:2)

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