我需要在我的Scala/Akka代码中使用memcached Java API.此API为您提供同步和异步方法.异步的返回java.util.concurrent.Future.这里有一个关于在Scala中处理Java Futures的问题如何在Akka Future中包装java.util.concurrent.Future?.但在我的情况下,我有两个选择:
在将来使用同步API和包装阻止代码并标记阻塞:
Future {
blocking {
cache.get(key) //synchronous blocking call
}
}
Run Code Online (Sandbox Code Playgroud)使用异步Java API并在Java Future上每隔n ms轮询一次以检查未来是否已完成(如上面链接问题中的上述答案之一所述).
哪一个更好?我倾向于第一种选择,因为轮询可以极大地影响响应时间.不应该blocking { }阻止阻止整个池?