sta*_*wer 4 java twitter future finagle
我是Finagle的新手.我现在正在阅读某人的代码,发现Future对象在不同的连接操作中被重用.我的问题是会导致Future对象多次执行(在每个连接中),还是只执行一次并存储结果以供以后连接?
例:
Future<A> a= b
.join(c)
.flatMap(new SomeFunctionReturningA());
Future<Tuple2<A, B>> future1 = a.join(b);
Future<D> future2 = future1.flatMap(new SomeFunctionReturningD());
future2.get();
Run Code Online (Sandbox Code Playgroud)
那么b会被执行两次,还是只执行一次?
Future是一个值的容器,值只设置一次!将Future[T]有不同的状态:
当您使用Future上map/flatMap的函数f时A,您将创建一个新的Future B,它将是由函数转换的前一个Future 的结果f.
注意:
A还没有"填补",你将会有一个尚未填补Ba中A也将执行f(a),并在设定的值BA已经"填充",则map/flatMap的调用者也将执行f(a),但不会重新计算其值A.onSuccess/onFailure它来注册一些代码,以便在将来获得它的价值时执行.| 归档时间: |
|
| 查看次数: |
2117 次 |
| 最近记录: |