您可以将s
Futures.chain用于链接
ListenableFuture:
final ListeningExecutorService service1 = MoreExecutors.listeningDecorator(Executors.newFixedThreadPool(16));final ListeningExecutorService service2 = MoreExecutors.listeningDecorator(Executors.newFixedThreadPool(16));ListenableFuture<String> service1result = service1.submit(new Callable<String>() { @Override public String call() throws Exception { return "service1result"; }});ListenableFuture<String> service2result = Futures.chain(service1result, new Function<String, ListenableFuture<String>>() { @Override public ListenableFuture<String> apply(final @Nullable String input) { return service2.submit(new Callable<String>() { @Override public String call() throws Exception { return Joiner.on(" -> ").join(input, "service2result"); } }); }});System.out.format("Result: %srn", service2result.get());在终端中以上代码的输出:
> run-main training.Training[info] Compiling 1 Java source to /home/remeniuk/projects/guava-training/target/scala-2.9.1/classes...[info] Running training.Training Result: service1result -> service2result



