Bin*_*mas 1 multithreading scala rx-java rx-scala
我正在尝试编写一个简单的RxScala程序:
import rx.lang.scala.Observable
import scala.concurrent.duration.DurationInt
import scala.language.{implicitConversions, postfixOps}
object Main {
def main(args: Array[String]): Unit = {
val o = Observable.interval(1 second)
o.subscribe(println(_))
}
}
Run Code Online (Sandbox Code Playgroud)
运行该程序时,看不到任何打印输出。我怀疑这是因为该线程在Observable.interval模具中产生数字。我注意到waitFor(o)在RxScalaDemo中有一个对的调用,但是我不知道该从何处导入。
如何使该程序始终运行以打印数字序列?
这是阻止主线程退出的一种方法:
val o = Observable.interval(1 second)
val latch = new CountDownLatch(1)
o.subscribe(i => {
print(i)
if (i >= 5) latch.countDown()
})
latch.await()
Run Code Online (Sandbox Code Playgroud)
这是一种相当常见的模式,用于CountDownLatch.await在完成工作后先阻塞主线程,然后倒计时闩锁,从而释放主线程
| 归档时间: |
|
| 查看次数: |
431 次 |
| 最近记录: |