0 java concurrency executorservice
我遇到了可调用线程的问题.
这是代码snipet:
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();
Run Code Online (Sandbox Code Playgroud)
上面的代码将正确执行18次,然后在第18次之后抛出ExecutionException.
我究竟做错了什么?
谢谢!
ExecutionException文档说明:
尝试检索通过抛出异常而中止的任务的结果时抛出异常.可以使用Throwable.getCause()方法检查此异常.
所以你的任务是抛出异常.在ExecutionException上调用getCause以查看该异常.
| 归档时间: |
|
| 查看次数: |
855 次 |
| 最近记录: |