相同之处:
1. execution.submit和execute方法均可以像线程池中提交一个任务,让线程池来异步执行这个任务;
2. 两个方法均可以接受Runnable类型的任务;
3. 从ExecutorService接口中均可以调用submit和execute方法,但是submit方法是在ExecutorService接口中定义的,而execute方法是在Executor接口中定义的;
不同之处:
1. submit()可以接受Runnable和Callable任务,但execute()只能接受Runnable任务;
2. submit方法的返回值是一个Future,而execute方法的返回值是void;
3. 对于异常的处理,使用submit方式提交的任务若在执行的过程中抛出了异常的话,异常信息会被吃掉(在控制台中看不到),需要通过Future.get方法来获取这个异常;使用execute方式提交的任务若在执行的过程中出现异常的话,异常信息会被打印到控制台;
什么时候使用这两个方法:
1. 若需要获取异步执行任务的返回值的话,使用submit方法;若仅仅是让一个任务在线程池中异步执行,使用execute方法;
标签:execute,Runnable,submit,任务,ExecutorService,方法 From: https://www.cnblogs.com/vt567/p/17134248.html