- 首先该异常会被抛出,且根据线程提交方式的不同:
-
execute(new task())会直接抛出异常; -
submit(new task())则不会直接将异常抛出,而需要通过future.get()获取线程池的结果或者异常信息; - 底层都是调用的
excute()方法,无非是submit()方法使用了try ... catch ...进行了二次捕获处理,封装返回给Future对象。
-
- 单个线程的异常并不会影响线程池中的其他任务执行;
- 最后会将这个线程从线程池中移除,并创建一个新的线程放到线程池中。









网友评论