我不确定我的问题的正确语言,所以请随时为我提供正确的术语。
假设我有一个进程 A,它输出一个迭代器(惰性求值)这会产生 Iterator[A]
然后我有另一个进程 B,它映射返回 Iterator[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 必须解决这个问题。