我知道这是一个开放式问题,我深表歉意。
我理解了Await.ready
回报Awaitable.type
while Await.result
回报T
但我还是让他们感到困惑。
两者有什么区别?
一个是阻塞的,另一个是非阻塞的?
它们都会阻塞直到 future 完成,区别只是它们的返回类型。
当您的Future
抛出异常:
def a = Future { Thread.sleep(2000); 100 }
def b = Future { Thread.sleep(2000); throw new NullPointerException }
Await.ready(a, Duration.Inf) // Future(Success(100))
Await.ready(b, Duration.Inf) // Future(Failure(java.lang.NullPointerException))
Await.result(a, Duration.Inf) // 100
Await.result(b, Duration.Inf) // crash with java.lang.NullPointerException
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)