在下面的代码中,if循环没有被执行。在futureTask1和2完成之前,将执行下一行代码。而且,程序永远不会终止。这是我的错误吗?
ExecutorService executor=Executors.newFixedThreadPool(2);
MyClass1 myclass1= new MyClass1(x,y);
MyClass2 myclass2= new MyClass2(x,y);
FutureTask<List<String>> futureTask1 = new FutureTask<List<String>>(myclass1);
FutureTask<List<String>> futureTask2 = new FutureTask<List<String>>(myclass2);
executor.submit(futureTask1);
executor.submit(futureTask2);
System.out.println("FutureTask completed");
if(futureTask1.isDone() && futureTask2.isDone()){
System.out.println("Done");
//shut down executor service
executor.shutdown();
//Execute some code
return;
}
答案 0 :(得分:0)
您将任务提交给执行者,但我没有看到任何等待执行者完成任务的代码。 executor.submit()
应该返回Future
您可以用来等待任务。