Java并发 - 期货

时间:2016-01-15 01:45:45

标签: java multithreading future executorservice callable

我正在使用ExecutorService来提交我的Callable任务并从中获取Future对象。

我的问题是:我可以向执行者提交一个新任务,该任务需要来自其他任务完成的未来对象的结果吗?

while (someCondition){

                Future<Type1> f1 = executor.submit(new SomeCallable1(Type1_istance));

                try {

                    Future<Type2> f2 = executor.submit(new SomeCallable2(f1));

                } catch (InterruptedException | ExecutionException e) {
                    ...
                }

SomeCallable2就像:

public void call(){ Type1 a = f1.get(); ...; //use a somehow }

运行SomeCollable2 call()的线程应该睡眠,直到f1准备就绪,对吗?

当我尝试使用我的代码时出现了很多异常,我不明白他们是否因为我以错误的方式使用Futures而不知道。

0 个答案:

没有答案