我正在使用播放框架,我讀到Play以非阻塞方式處理每個請求。 那麼Blocking & Scala中的非阻塞未來有什麼區別?Scala中的非阻塞和阻塞未來是什麼?
也請提供有關未來的信息& Await.Result()方法 謝謝!
我正在使用播放框架,我讀到Play以非阻塞方式處理每個請求。 那麼Blocking & Scala中的非阻塞未來有什麼區別?Scala中的非阻塞和阻塞未來是什麼?
也請提供有關未來的信息& Await.Result()方法 謝謝!
如果Await.Result()
在Future
完成之前的任意時刻被調用,則Future
將變爲阻塞狀態。如果您改爲使用onComplete
,onSuccess
,onFailure
,map
或flatMap
(和其他一些方法),則您正在註冊一個回調函數,該函數在Future
返回時將發生。因此,Future
是非阻塞的。儘可能使用不阻塞Future
的回調函數。
我是Scala的新手。這是否意味着等待會阻止正在執行的線程?我不理解語言「未來變得阻礙」。 –
是的,正在執行的線程被阻塞,直到等待的'Future'完成 – kliew
謝謝。這有幫助。現在我試圖瞭解,除了'Await.result'之外,在未來,即在未來{
期貨(3歲,但仍然有效)的初學者友好指南可以在這裏找到:http://danielwestheide.com/blog/2013/01/09/the-neophytes-guide-to-scala- part-8-welcome-to-the-future.html – manub