FutureTask永远不会完成

时间:2014-10-01 09:47:08

标签: java future executorservice

在下面的代码中,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;
    }

1 个答案:

答案 0 :(得分:0)

您将任务提交给执行者,但我没有看到任何等待执行者完成任务的代码。 executor.submit()应该返回Future您可以用来等待任务。