execute方法中执行出现异常,程序打印堆栈信息,直接终止;
如下图,catch后直接抛出了异常,并且一直往外层方法追溯,并没有进行catch;
而submit方法虽然也是调用execute,但是只要传入的参数是futureTask,由于源码中重写了runnable接口的run方法,在该方法中对执行任务出现的异常进行了catch,并且没有再向外抛出,这就把异常吃掉了;但是如果传入的参数还是runnable的直接实现类,那么即使调用submit方法,也会直接抛异常;所以这里submit是否抛异常与入参有关;
线程池execute与submit方法
于 2024-06-29 08:51:47 首次发布