当前位置:网站首页>scala 中 Future 的简单使用

scala 中 Future 的简单使用

2020-11-07 23:58:44 lemos

scala Future

object MyFuture {

  def doWork(i: Int): Int = {
    Thread.sleep(3 * 1000)
    i
  }

  def main(args: Array[String]): Unit =
    1 to 5 foreach { i =>
      val future = Future {
        blocking {
          doWork(i)
        }
      }
      future onComplete {
        case Success(value) => println(value)
        case Failure(exception) => println(exception)
      }
      // 通过视界转换,让 Int 拥有更丰富的方法
      // 由于继承了 AnyVal,表明这是一个 value class
      /*
      implicit final class DurationInt(private val n: Int) extends AnyVal with DurationConversions {
        override protected def durationIn(unit: TimeUnit): FiniteDuration = Duration(n.toLong, unit)
      }
       */
      Await.result(future, 7 seconds)
    }
}

版权声明
本文为[lemos]所创,转载请带上原文链接,感谢
https://my.oschina.net/lemos/blog/4707772