线程池.submit方法不执行
时间: 2023-08-22 14:11:24 浏览: 177
回答: 根据引用\[1\]和引用\[2\]的代码示例,可以看出线程池的submit方法是用来提交任务并返回一个Future对象的。在引用\[2\]的代码中,通过executor.submit(runnable)方法提交了一个Runnable任务,并通过future.get()方法获取任务的执行结果。如果线程池的submit方法不执行,可能有以下几个原因:
1. 线程池没有启动:在代码中,需要通过ExecutorService executor = Executors.newSingleThreadExecutor()来创建一个单线程的线程池,并且需要调用executor.shutdown()方法来关闭线程池。如果没有调用executor.shutdown()方法,线程池将一直处于运行状态,任务可能不会被执行。
2. 任务被阻塞:如果提交的任务是一个耗时的任务,可能会导致线程池中的线程被阻塞,无法执行其他任务。可以尝试增加线程池的大小或者使用其他类型的线程池来解决这个问题。
3. 任务执行异常:如果提交的任务在执行过程中发生异常,可能会导致任务不执行或者执行结果无法获取。可以通过捕获异常并进行处理来解决这个问题。
总结来说,如果线程池的submit方法不执行,可以检查线程池的启动状态、任务是否被阻塞以及任务执行过程中是否发生异常等因素。
#### 引用[.reference_title]
- *1* [查找在使用线程池Submit方法时,导致线程同步的问题!](https://blog.csdn.net/qq_36249358/article/details/120045039)[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^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* *3* [ThreadPoolExecutor线程池之submit方法](https://blog.csdn.net/woailuo23/article/details/103062573)[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^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]