队列:第一章:阻塞队列
2020-05-04 18:39
295 查看
理论:
阻塞队列与普通队列的区别在于,当队列是空的时,从队列中获取元素的操作将会被阻塞,或者当队列是满时,往队列里添加元素的操作会被阻塞。试图从空的阻塞队列中获取元素的线程将会被阻塞,直到其他的线程往空的队列插入新的元素。同样,试图往已满的阻塞队列中添加新元素的线程同样也会被阻塞,直到其他的线程使队列重新变得空闲起来,如从队列中移除一个或者多个元素,或者完全清空队列,下图展示了如何通过阻塞队列来合作:
线程1往阻塞队列中添加元素,而线程2从阻塞队列中移除元素
常用的队列主要有以下两种:
(当然通过不同的实现方式,还可以延伸出很多不同类型的队列,DelayQueue就是其中的一种)
先进先出(FIFO):先插入的队列的元素也最先出队列,类似于排队的功能。从某种程度上来说这种队列也体现了一种公平性。
后进先出(LIFO):后插入队列的元素最先出队列,这种队列优先处理最近发生的事件。
好处:
接口结构和实现类:
java小丑 原创文章 286获赞 360访问量 11万+ 关注 私信
相关文章推荐
- 并发队列 – 有界阻塞队列 ArrayBlockingQueue 原理探究
- 阻塞队列BlockingQueue的应用
- 生产者/消费者模式(阻塞队列)
- 阻塞队列(BlockingQueue)
- linux中的阻塞机制及等待队列【转】
- BlockingQueue(阻塞队列)分析
- Java队列详解之阻塞和非阻塞分析
- JAVA并发之阻塞队列LinkedBlockingQueue与ArrayBlockingQueue
- 阻塞队列--BlockingQueue
- 同步容器、并发容器、阻塞队列、双端队列
- 阻塞队列(BlockingQueue)图解,以及实现类的简述
- Java多线程高并发学习笔记——阻塞队列
- java阻塞队列ArrayBlockingQueue源码分析
- 从服务端下载图片(主线程阻塞,消息队列机制,从网上下载图片)
- 并发队列ConcurrentLinkedQueue和阻塞栈LinkedBlockingQueue用法和阻塞队列ArrayBlockingQueue
- Java并发编程:阻塞队列
- [Java并发包学习九]Java中的阻塞队列
- Java并发之阻塞队列
- Java线程(篇外篇):阻塞队列BlockingQueue
- 几种阻塞队列介绍