📚 分类
线程池
🕵🏽‍♀️ 问题描述
线程池中有哪些常见的阻塞队列?
👨‍🏫 问题讲解
workQueue-当没有空闲核心线程时,新来任务会加入到此队列排队,队列满会创建救急线程执行任务

1. ArrayBlockingQueue: 基于数组结构的有界阻塞队列,FIFO
2. LinkedBlockingQueue: 基于链表结构的有界阻塞队列,FIFO
3. DelayedWorkQueue:是一个优先级队列,它可以保证每次出队的任务都是当前队列中执行时间最靠前的。
4. SynchronousQueue:不存储元素的阻塞队列,每个插入操作都必须等待一个移出操作。

ArrayBlockingQueue的LinkedBlockingQueue区别

❒ LinkedBlockingQueue

✔ 默认无界,支持有界
✔ 底层是链表
✔ 是懒惰的,创建节点的时候添加数据
✔ 入队会生成新 Node
✔ 两把锁(头尾)

❒ ArrayBlockingQueue

✔ 强制有界
✔ 底层是数组
✔ 提前初始化 Node 数组
✔ Node需要是提前创建好的
✔ 一把锁
🏳️‍🌈 问题总结
1. ArrayBlockingQueue: 基于数组结构的有界阻塞队列,FIFO
2. LinkedBlockingQueue: 基于链表结构的有界阻塞队列,FIFO
📖 问题信息
📈 浏览次数:14 | 📅 更新时间:2025-12-14 11:02:03
📦 创建信息
🏷️ ID:118 | 📅 创建时间:2025-01-07 00:03:59