new ThreadPoolExecutor
时间: 2023-10-17 12:00:58 浏览: 113
ThreadPoolExecutor是Java中用于创建和管理线程池的类。可以通过ThreadPoolExecutor来创建自定义的线程池,以适应不同的需求。ThreadPoolExecutor的构造方法可以接收多个参数,包括核心线程数、最大线程数、等待队列、拒绝策略等。
使用ThreadPoolExecutor创建线程池的过程如下:
1. 实例化ThreadPoolExecutor对象,传入合适的参数,包括核心线程数、最大线程数、等待队列、拒绝策略等。
2. 根据业务需求,创建Runnable或Callable任务对象。
3. 调用ThreadPoolExecutor的execute方法或submit方法,将任务提交给线程池执行。
在创建ThreadPoolExecutor对象时,可以指定不同的拒绝策略来处理当核心线程、非核心线程都在运行,且等待队列已经满了的情况下,又来了新任务的情况。常用的拒绝策略有以下几种:
1. AbortPolicy(默认):直接抛出RejectedExecutionException异常,表示线程池无法处理多出的任务。
2. CallerRunsPolicy:让当前线程(一般是主线程)执行这个新线程。即,将新任务交给主线程执行。
3. DiscardOldestPolicy:弹出等待队列的队头,将新线程加入线程池。
4. DiscardPolicy:直接丢弃新任务,不做任何处理。
总结起来,通过ThreadPoolExecutor可以灵活地创建和管理线程池,并对多出的任务进行拒绝处理,以满足不同的业务需求。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *3* [java线程池ThreadPoolExecutor](https://blog.csdn.net/weixin_48288539/article/details/127061783)[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^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* [线程池ThreadPoolExecutor详解(整理详细)](https://blog.csdn.net/trusause/article/details/125747447)[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^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文