在下面的代码中,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;
}
您正在将任务提交给执行器,但我没有看到任何等待执行器完成任务的代码。executor.submit()
应该返回一个Future
,您可以使用它来等待您的任务。