我有一些Stream [Double]的集合。当我连接套接字并开始从流中打印值时,它可以工作:
stream1 foreach println
但是,如果我这样做,我只能从stream1获取值:
stream1 foreach println
stream2 foreach println
所以我写了其中一篇:
def monitorStream(label:String, stream:Stream[Double]) = {
val streamMonitor = new Thread(new Runnable {
def run() {
stream foreach {x => println(label,x)}
}
})
streamMonitor.start
}
但在致电
monitorStream(label1,stream1)
monitorStream(label2,stream2)
我仍然只获得stream1的输出。如何同时监控这些流的输出?
由于
加法:
如下定义流程:
val stream1 = Stream.from(1).map(_.toDouble)
val stream2 = stream1.filter(_ % 5 == 0)
但不是我的实际流,每秒产生一个双倍。此外,
stream1.zip(stream2) foreach println
打印 nothing (我这里的实际流),这让我怀疑这与套接字有关。