ThreadPoolExecutor.submit和execute
时间: 2023-08-29 08:11:45 浏览: 55
引用引用引用<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [线程池(三)----ThreadPoolTaskExecutor的提交方法execute和submit](https://blog.csdn.net/weixin_50966947/article/details/126056805)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
相关问题
ThreadPoolExecutor .submit 和executor
ThreadPoolExecutor.submit和executorService.execute都是用来向线程池提交任务的方法。它们的作用是将任务添加到线程池中等待执行。
在ThreadPoolExecutor中,submit方法是通过调用execute方法来执行任务的。submit方法还返回一个表示任务执行结果的Future对象。具体而言,submit方法会首先将任务包装成RunnableFuture对象,然后调用execute方法来执行该任务。
而executorService.execute方法直接将任务添加到线程池中,并且不返回任何执行结果。它适用于不需要获取任务执行结果的情况。
总之,submit方法是execute方法的一个更高级的封装,可以获取任务的执行结果。而execute方法则是一个简化的提交任务的方法,不返回任务执行结果。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [0.9.4、线程池—— ThreadPoolExecutor.execute 处理逻辑](https://blog.csdn.net/bestcxx/article/details/122025979)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
java threadPoolExecutor submit和execute 区别
Java中的ThreadPoolExecutor类提供了两种提交任务的方法:submit()和execute()。它们的区别如下:
1. 返回值类型不同:submit()方法会返回一个Future对象,而execute()方法没有返回值。
2. 异常处理方式不同:submit()方法会将任务执行过程中抛出的异常封装在Future对象中,而execute()方法则会在任务执行过程中抛出异常时直接抛出。
3. 任务参数不同:submit()方法可以接收Callable和Runnable类型的任务,而execute()方法只能接收Runnable类型的任务。
4. 执行时机不同:submit()方法是在提交任务后立即返回一个Future对象,任务的执行由线程池中的线程进行;而execute()方法则是在提交任务后将任务放入任务队列中,由线程池中的线程按照队列的顺序依次执行任务。
综上所述,submit()方法比execute()方法更加灵活,可以处理更多的任务类型,并且能够更好地处理任务执行过程中的异常情况。但是,如果只需要简单地提交一个任务并不关心其执行结果,那么使用execute()方法更加简单方便。