本文主要是介绍【Scala笔记——道】给你的Future一个Promise --最浪漫的并发模型(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Future
曾经,她在他的臂弯中,星空下,问他:“会不会一直对我这么好”, “你会不会在五年后来娶我”…
Future 和 Promise
- Future 代表未来。未来总会来到,但这个未来是成功或是失败我们不得而知。抽象为核心三个方法 `onComplete’, ’onSuccess’, ‘onFailure’。其中 onSuccess和 onFailure是 onComplete的简化。"如果我以后不改变,你会不会永远对我这么好?”这种情况相当于Future[B]有一个前置的条件Future[A],这种由Future[A] => Future[B] 的转化可以抽象为 map。
- Promise 代表承诺。承诺意味着需要付诸行动,但行动过程中总会有困难去克服。抽象为核心方法“complete", ”tryComplete"。其中tryComplete是complete具体的过程。
- Impl.Promise 代表具体的一个承诺继承 Future和Promise。一个具体的承诺是对于一种未来期许所制定的约定。
- KeptPromise.Successful 代表不需要完成已经实现的承诺,例如:A => 你会不会现在来陪在我身边 B=> 开门,我已经在你家门外了
- KeptPromise.Failure 代表不需要完成已经不可实现的承诺。例如:A => 你会不会永远对我这么好,无论我犯了什么错? B 这个时候不需要任何承诺,因为这时任何承诺都注定是不可实现的。
- DefaultPromise 大多数情况下需要 付出,努力实现的承诺。其中AtomicReference 接口表明了一个承诺的状态是可变的,但不会混杂多个承诺。
她的未来 他的承诺
你会不会送我一只玩具熊?
…
你要的是这一只吗?
具体实现如下
val f1 = Future.successful{ Her(said = "你会不会送我一只玩具熊?" ) }f1.map{ case Her(said
这篇关于【Scala笔记——道】给你的Future一个Promise --最浪漫的并发模型(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!