問題の正しい言葉遣いがよくわからないので、遠慮なく正しい用語を教えてください。
イテレータ (遅延評価) を出力するプロセス A があるとします。これにより、Iterator[A] が生成されます。
次に、Iterator[B] を返すイベントをマップする別のプロセス B があります。
これは、さらにいくつかのプロセスで続きます Iterator[A] -> Iterator[B] -> Iterator[C] -> ---
最終的に、このストリームをリスト [Z] に評価します。これにより、List[A] -> List[B] -> List[C] などのメモリ ヒットを節約できます。
ここで、並列化を導入してパフォーマンスを向上させたいと考えていますが、反復子全体で各要素の評価を並列化するのではなく、各反復子スタックを並列化したいと考えています。したがって、この場合、プロセス A のスレッドは Iterator[A] の Queue[A] を満たし、プロセス B のスレッドは Queue[A] から取得し、マッピングを適用してから、Iterator[B] の Queue[B] に追加します。から読む。
独自の非同期キューを設計することで、以前に他の言語でこれを行ったことがありますが、Scala でこれを解決するにはどうすればよいのか疑問に思っていました。