线程池中任务队列的底层原理
时间: 2023-10-26 08:59:24 浏览: 53
线程池中任务队列的底层原理可以简单描述如下:
任务队列是线程池中用于存储待执行任务的数据结构。当任务提交到线程池时,如果正在运行的线程数量小于核心线程数(corePoolSize),则会立即创建线程来执行任务。如果正在运行的线程数量已经达到核心线程数,任务会被放入任务队列中。
任务队列可以是不同的数据结构,常用的有有界队列和无界队列。有界队列有限制大小,当队列已满时,新的任务将无法进入队列,此时线程池会执行饱和拒绝策略。常见的饱和拒绝策略有:AbortPolicy(抛出异常)、CallerRunsPolicy(由调用线程执行)、DiscardOldestPolicy(丢弃最旧的任务)和DiscardPolicy(直接丢弃任务)。
无界队列没有大小限制,可以一直接收新的任务,但需要注意的是如果任务提交速度过快,可能会导致内存溢出。
任务队列的选择要根据具体应用场景和需求进行权衡。有界队列适合控制资源的使用,但可能会导致任务被拒绝。无界队列可以保证任务不被拒绝,但需要注意控制任务提交速度,避免内存溢出。
总之,线程池中的任务队列起到了存储待执行任务的作用,不同的队列实现方式和饱和拒绝策略可以根据实际需求进行选择。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [自定义线程池、线程池的底层原理以及线程8锁问题](https://blog.csdn.net/prefect_start/article/details/123599548)[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: 100%"]
[ .reference_list ]
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)