3

次のような複数のソースから、プログラムでデータを同期して読み取り、処理する必要があります。

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

各 readInput は、異なる性質の入力 (ソケット、USB ポートなど) を処理するために個別のコンポーネントに実装されていますが、データ サンプルの形式は同じです。問題は、readInput と processData の両方がブロックされていることです。そのため、「processData」の入力の読み取りを多重化する解決策を考え出す必要があります。この問題は「reactor」または「proactor」パターンに対応していますか? 各「readInput」を個別のスレッドに移動せずに実装を支援するフレームワークはありますか?
ありがとう...

4

1 に答える 1

2

readInputさまざまな機能をノンブロッキングにするために書き直し/再構成できますか? そうでない場合は、個別のスレッド (場合によっては個別のプロセス) が、それらを並行して実行する唯一の方法です。はいの場合、リアクター パターンは、各入力が到着したときに適切な処理をトリガーするのに役立ちます。

于 2012-12-07T15:04:41.917 に答える