我将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. scala actor拦截当前线程
- 7. 阻止当前线程,直到部分代码在iOS主线程上运行
- 8. Scala Future with Option()
- 9. Scala Play Future Interdependancy
- 10. 主线程如何在此线程之前运行?
- 11. 让线程在EDT的非EDT(事件调度线程)线程上运行
- 12. Python多线程:如何让守护进程线程运行
- 13. 在运行时暂停当前进程中的所有线程
- 14. 如何让当前线程等待函数在java中返回?
- 15. 如何在Ubuntu上运行Scala IDE?
- 16. 在当前正在运行的进程上执行操作
- 17. 如何检查Java中当前正在运行的线程的数量?
- 18. 让应用程序在前台运行
- 19. 从ExecutorService获取当前正在运行的线程对象
- 20. 如何让一段代码在单独的线程中运行?
- 21. 如何让Quartz.net作业在单线程的公寓中运行?
- 22. 让Eigen运行在多线程中
- 23. 线程是否可运行?或上课?如何在后台运行线程?
- 24. 在线程上运行NSTimer
- 25. 多核处理器上当前正在运行的线程是什么?
- 26. 如何让所有的类方法只在单线程上运行? (同步课?)
- 27. 一个Scala过程应该在Scala Future中标记为scala.concurrent.blocking吗?
- 28. 一步一步的指导让Scala在.net上运行?
- 29. 如何让这个程序在线性时间运行?
- 30. 如何在当前类的上下文中运行IRB.start
如果你做简单的事情你不都需要一个未来。 –
@EndeNeu,简单的事情只是作品的一个分支。我必须建立一个未来,以确保最终的结果是'未来'。 – LoranceChen
您可以执行'Future.successful'或'Future.failed'来获取已完成的Future。 – Thilo