目录
什么是阻塞队列
阻塞队列BlockingQueue是队列的一种。阻塞队列的特点是,当阻塞队列为空,从队列中获取元素操作将会被阻塞;当队列满时,往队列里添加元素的操作将会被阻塞。空了消费者自动阻塞、满了生产者自动阻塞
阻塞队列广泛应用在线程池技术和各种消息队列中间件的底层中~
阻塞队列家族
BlockingQueue继承了Collection接口,同时BlockingQueue还有7个子类,我们主要掌握3个
ArrayBlockingQueue:由数组结构组成的有界阻塞队列(内容有限)
LinkedBlockinQueue:由链表结构组成的有界阻塞队列(内容虽然有限但最大值为上亿,可认为无限)
SynchronousQueue:不存储元素的阻塞队列,也即单个元素的队列(只能存一个) 它的功能类似于生活中一手交钱一手交货
PriorityBlockingQueue:支持优先级排序的无界阻塞队列
DelayQueue:使用优先级队列实现的延迟无界阻塞队列
LinkedTransferQueue:由链表结构组成的无界阻塞队列
LinkedBlockingDeque:由链表结构组成的双向阻塞队列
阻塞队列的4种常用API