「Java 路线」| 阻塞队列

2020-12-30  本文已影响0人  彭旭锐

点赞关注,不再迷路,你的支持对我意义重大!

🔥 Hi,我是丑丑。本文 「Java 路线」| 导读 —— 他山之石,可以攻玉 已收录,这里有 Android 进阶成长路线笔记 & 博客,欢迎跟着彭丑丑一起成长。(联系方式在 GitHub)


前言


目录


1. 前置知识


2. 什么是阻塞队列

阻塞队列(BlockingQueue)是支持阻塞地「入队」或「出队」的队列:

应用场景: 解决生产者和消费者强耦合以及盛昌消费能力不均衡的问题。


2. 阻塞队列的基本操作

BlockingQueue 中并不是每一个方法都会阻塞,具体总结如下:

用途 抛出异常 返回特殊值 阻塞,超时退出 阻塞
入队 add(e) offer(e) offer(e,time,unit) put(e)
出队 remove() poll() poll(time,unit) take()
检查队头 element() peek() / /

3. 阻塞队列实现

•ArrayBlockingQueue:一个由数组结构组成的有界阻塞队列。
•LinkedBlockingQueue:一个由链表结构组成的有界阻塞队列。
•PriorityBlockingQueue:一个支持优先级排序的无界阻塞队列。
•DelayQueue:一个使用优先级队列实现的无界阻塞队列。
•SynchronousQueue:一个不存储元素的阻塞队列。
•LinkedTransferQueue:一个由链表结构组成的无界阻塞队列。
•LinkedBlockingDeque:一个由链表结构组成的双向阻塞队列。

BlockingDeque



创作不易,你的「三连」是丑丑最大的动力,我们下次见!

上一篇 下一篇

猜你喜欢

热点阅读