sme*_*eeb 17 java concurrency future akka
我想知道何时使用Akka Futures,发现这篇文章比主要的Akka文档更有帮助.所以看起来Akka Futures和Java 7 Futures完全一样.所以我问:
Akka Futures实现异步通信方式,而Java7 Futures实现同步方式.是的,他们做同样的事情 - 沟通 - 但以完全不同的方式.
Producer-Consumer对可以通过两种方式进行交互:同步和异步.同步方式假设消费者具有其自己的线程并执行阻塞操作以获得下一个产生的消息,例如BlockingQueue.take().在异步方法中,消费者不拥有一个线程,它只是一个至少有两个方法的对象:存储消息并处理它.生产者调用store方法,就像它Queue.put(m)在同步方法中调用一样,但是这个方法也启动了在公共线程池上执行消费者的处理方法.
UPDT关于第二个问题(为什么要使用Akka Future):未来的创作看起来(而且)比Actor更简单; 期货链的代码比Actors的代码更紧凑,更具可证明性.但是请注意,Future可以只传递单个值(消息),而Actor可以处理一系列消息.但序列可以用Akka Streams处理.所以问题出现了:为什么要使用Akka Actors?我邀请更有经验的开发人员回答这个问题.一般来说,我认为如果您的任务可以通过Futures解决,那么使用Futures,否则使用Streams,使用Streams,否则使用Akka Actors,然后使用Actors,否则寻找另一个框架.