【发布时间】:2014-09-25 12:05:05
【问题描述】:
我需要在我的 Scala/Akka 代码中使用 memcached Java API。此 API 为您提供同步和异步方法。异步的返回java.util.concurrent.Future。这里有一个关于在 Scala 中处理 Java 期货的问题 How do I wrap a java.util.concurrent.Future in an Akka Future?。但是在我的情况下,我有两个选择:
-
使用同步 API 并在未来包装阻塞代码并标记阻塞:
Future { blocking { cache.get(key) //synchronous blocking call } } 使用异步 Java API 并在 Java Future 上每隔 n 毫秒轮询一次,以检查未来是否完成(如上述链接问题中的上述答案之一所述)。
哪个更好?我倾向于第一个选项,因为轮询会极大地影响响应时间。 blocking { } block 不应该阻止阻塞整个池吗?
【问题讨论】:
标签: java scala asynchronous concurrency akka