scala - 如何在 RxScala/Java 中使用多线程执行 map、filter、flatMap?

标签 scala concurrency functional-programming rx-java rx-scala

如何运行 filter , mapflatMapObservable使用多线程:

  def withDelay[T](delay: Duration)(t: => T) = {
    Thread.sleep(delay.toMillis)
    t
  }

  Observable
    .interval(500 millisecond)
    .filter(x => {
      withDelay(1 second) { x % 2 == 0 }
    })
    .map(x => {
      withDelay(1 second) { x * x }
    }).subscribe(println(_))

目标是使用多个线程同时运行过滤和转换操作。

最佳答案

你可以在每个操作上使用 Async.toAsync() 。

它在包 rxjava-async 上

Documentation

关于scala - 如何在 RxScala/Java 中使用多线程执行 map、filter、flatMap?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33749045/

相关文章:

testing - 将模块与 makefile (Ocaml) 结合使用时出现问题

java - 无法理解类在 Scala 中的工作原理

java - 玩!表格总是有错误

scala - 在spark/scala中给出重复值的唯一标识符

Java - 4 线程在两个同步方法中操作相同的对象数据

java - Java:从不同的线程读取同一文件有时会在某些线程中返回空内容

java - Java 中的 Func 编程。方法引用与函数应用签名不匹配但成功运行

scala - 尝试在 scalatest 中使用 beforeAll 时没有启动应用程序

swift - DispatchGroup 会永远等待吗?

javascript - JavaScript 中带有未知参数的柯里化(Currying)函数