我在调用线程上遇到了麻烦。

这是代码片段:

ExecutorService service = Executors.newFixedThreadPool(1);
for(int i =0; i<30;i++){
    Future<MyClass> task = service.submit( new MyThread(parameter1, parameter2));
    try{
        result = task.get();
    }
    catch(InterruptedException ex){
        System.out.println("Interruped!");
    }
    catch(ExecutionException ex){
        System.out.println("Execution ExceptioN!");
    }
}
service.shutdownNow();


上面的代码将正确执行18次,然后在第18次之后抛出ExecutionException。

我究竟做错了什么?

谢谢!

最佳答案

ExecutionException文档指出:

尝试检索因引发异常而中止的任务的结果时引发的异常。可以使用Throwable.getCause()方法检查此异常。

因此,您的任务将引发异常。在ExecutionException上调用getCause以查看该异常。

07-28 04:30