workQueue是任务队列还是阻塞队列
时间: 2024-04-22 14:25:23 浏览: 12
`workQueue` 可以是任务队列,也可以是阻塞队列,这取决于具体的上下文和实现。在线程池的概念中,`workQueue` 通常是用来存储待执行的任务的队列,它可以是一个普通的队列(如 FIFO 队列)或者是一个阻塞队列。
如果 `workQueue` 是一个普通的队列,那么线程池中的线程可以直接从队列中获取任务进行执行,如果队列为空,则线程会等待直到有新的任务被提交到队列中。
如果 `workQueue` 是一个阻塞队列(如 `LinkedBlockingQueue`、`ArrayBlockingQueue` 等),那么当线程池中的线程尝试从队列中获取任务时,如果队列为空,线程会被阻塞,直到有新的任务被提交到队列中。同样地,如果阻塞队列已满,当尝试向队列中插入新的任务时,线程也会被阻塞,直到队列有空闲位置。
因此,`workQueue` 可以根据需要选择适合的实现方式,以控制任务提交和执行的速度。
相关问题
FixedThreadPool 的任务队列
FixedThreadPool 的任务队列是一个等待队列,当线程池的核心线程数(corePoolSize)已满,新进入线程池的任务会被放入等待队列(workQueue)中等待执行。这个等待队列是一个阻塞队列,即当队列已满时,新的任务会被阻塞直到有空闲的线程来执行任务。在 FixedThreadPool 中,使用的是 LinkedBlockingQueue,它是一个基于链表实现的无界阻塞队列,可以无限制地存放任务。所以,当线程池的线程数达到了核心线程数后,新的任务会被放入等待队列中,等待线程池中的线程来执行。这样可以保证任务不会丢失,并且可以控制线程池的并发度。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [FixedThreadPool](https://blog.csdn.net/shidebin/article/details/126818287)[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^chatsearchT0_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
线程池常用队列和拒绝策略
常用的线程池队列是workQueue,它对应的是阻塞队列。阻塞队列是一种在队列满或者空的情况下,能够阻塞线程的队列。通过使用阻塞队列,我们可以有效地控制任务的提交和执行,从而避免资源耗尽的风险。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *3* [并发编程之线程池(阻塞队列,拒绝策略,线程池种类)](https://blog.csdn.net/illovesoftware/article/details/116399312)[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: 50%"]
- *2* [线程池任务队列和拒绝策略](https://blog.csdn.net/u010277958/article/details/108620617)[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: 50%"]
[ .reference_list ]