我將scala.concurrent.ExecutionContext.Implicits.global
用於Future的所有執行者。但有時候,我做了一件簡單的事情,只是希望它不會改變線程(不把它放到線程池中),讓它在當前線程下繼續運行。使用twitter Future
其中有一個Future.value
來實現此目的。如何在Scala的未來做什麼?如何讓scala的Future在當前線程上運行?
1
A
回答
2
你可以這樣做:
Future.fromTry(Try { ... })
它不需要ExecutionContext
,基本上只是立即評估表達和包裝導致的未來。
其實,這裏是它的實現:
def fromTry[T](result: Try[T]): Future[T] = Promise.fromTry(result).future
因此,這似乎是Twitter的Future.value
的直接模擬。
如果您想創建已失敗的未來,請考慮使用Future.successful
如果您的代碼沒有出現任何異常或Future.failed
。
1
scala標準庫中twitter等的Future.value
等於Future.successful
。
Future.const
是Future.fromTry
Future.exception
是Future.failed
相關問題
- 1. 在Scala Future塊線程上等待嗎?
- 2. 如何在boost中找到當前正在運行的線程?
- 3. 如何停止當前線程以外的所有正在運行的線程?
- 4. 如何調試Scala Future?
- 5. 讓scala程序在eclipse中運行
- 6. RunLater在當前線程或給任務給當前線程以後運行
- 7. scala actor攔截當前線程
- 8. 如何找到當前線程運行的cpu,Mac和BSD?
- 9. 阻止當前線程,直到部分代碼在iOS主線程上運行
- 10. Scala Play Future Interdependancy
- 11. Scala Future with Option()
- 12. 如何打印當前在特定的非線程類上運行的線程的名稱?
- 13. 主線程如何在此線程之前運行?
- 14. Python多線程:如何讓守護進程線程運行
- 15. 讓線程在EDT的非EDT(事件調度線程)線程上運行
- 16. 如何在'main'線程上運行DefaultMessageListenerContainer
- 17. 如何在JButton上運行線程?
- 18. 在運行時暫停當前進程中的所有線程
- 19. 如何讓當前線程等待函數在java中返回?
- 20. 如何讓javaws在前臺運行?
- 21. 如何在Windows Phone上運行Scala?
- 22. 如何在Ubuntu上運行Scala IDE?
- 23. 在Playframework中使用Scala Future?
- 24. 在當前正在運行的進程上執行操作
- 25. Scala Future和Thread.sleep的奇怪行爲
- 26. Scala Future concurrency問題
- 27. 無法讓Scala運行
- 28. 如何檢查Python中當前正在運行的線程的數量?
- 29. 如何檢查Java中當前正在運行的線程的數量?
- 30. 一次運行多線程並讓線程快速運行?
如果你做簡單的事情你不都需要一個未來。 –
@EndeNeu,簡單的事情只是作品的一個分支。我必須建立一個未來,以確保最終的結果是'未來'。 – LoranceChen
您可以執行'Future.successful'或'Future.failed'來獲取已完成的Future。 – Thilo