1. 常见阻塞队列
1)ArrayBlockingQueue:是一个基于数组结构的有界阻塞队列,此队列按照FIFO(先进先出)的原则对元素进行排序;
2)linkedBlockingQueue:一个基于链表结构的有界(大小默认值为Integer.MAX_VALUE)阻塞队列,此队列按照FIFO(先进先出)的原则对元素进行排序,吞吐量通常要高于ArrayBlockingQueue。
3)SynchronousQueue:一个不存储元素的阻塞队列,每个插入 *** 作必须等到另外一个线程调用移除 *** 作,否则插入 *** 作一直处于阻塞状态。
4)PriorityBlockingQueue:支持优先级排序的无界阻塞队列。
5)DelayQueue:使用优先级队列实现的延迟无界阻塞队列。
6)linkedTransferQueue:由链表结构组成的无界阻塞队列
7)linkedBlockingDeque:由链表结构组成的双向阻塞队列
2. 阻塞队列优点
在多线程领域,所谓阻塞,在某些情况下会挂机线程(即阻塞),一旦条件满足,被挂起的线程又会自动被唤醒。
BlockingQueue的好处:不需要关心什么时候需要阻塞线程,什么时候需要唤醒线程,BlockingQueue的底层已经封装好了。
3. 阻塞队列的核心方法
4. 阻塞队列适用范围
1)生产者消费者
2)线程池
3)消息中间件
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)