我不知道如何从Java中指定某种执行服务(例如线程池)来执行将来的回调。 例如,我可以进行一系列地图操作:
val executionService = java.util.concurrent.Executors.newSingleThreadExecutor()
val twitterExecutor = com.twitter.util.FuturePool.apply(executionService)
val p = com.twitter.util.Promise.apply[Int]
val r = p.map(t => t + 1).map(t => t + 1).map(t => t + 1)
// Do something else ...
// This could also happen from another thread:
p.updateIfEmpty(Return(10))
com.twitter.util.Await.ready(p)
如何指定用于回调的初始执行服务twitterExecutor
和
如何更改单个map
回调的执行服务?
在Scala标准库中,我可以指定隐式执行上下文。
我不想创建一个已经完成的未来,但是稍后通过诺言完成它。
我只发现了以下问题:
https://groups.google.com/forum/#!topic/finaglers/ovDL2UFKoDw,答案建议使用flatMap
,但我想避免在每个回调中返回新的未来。
以及以下说明:https://twitter.github.io/finagle/guide/Futures.html 但是它向我展示了如何从一个池中创建一个新的未来,因为我从一个承诺开始,所以我想避免这个池。