首页 > 其他分享 >ExecutorService.submit()与Executor.execute()的区别

ExecutorService.submit()与Executor.execute()的区别

时间:2023-02-19 10:01:24浏览次数:36  
标签:execute Runnable submit 任务 ExecutorService 方法

相同之处:

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

相关文章