在下面的代码中,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;
}发布于 2014-10-01 17:56:19
您正在向executor提交任务,但我没有看到任何等待executor完成任务的代码。executor.submit()应该会返回一个Future,你可以用它来等待你的任务。
https://stackoverflow.com/questions/26138537
复制相似问题