阻塞队列,关键字是阻塞,先理解阻塞的含义,在阻塞队列中,线程阻塞有这样的两种情况:
1.当队列中没有数据的情况下,消费者端的所有线程都会被自动阻塞(挂起),直到有数据放入队列。
2.当队列中填满数据的情况下,生产者端的所有线程都会自动阻塞(挂起),直到队列中有空的位置,线程被自动唤醒。
阻塞队列的主要方法
抛出异常:抛出一个异常
特殊值:返回一个特殊值(null或false,视情况而定)
阻塞:在成功操作之前,一直阻塞线程
超时:放弃前只在最大的时间内阻塞
Java中的阻塞队列
1.ArrayBlockingQueue:由数组结构组成的有界阻塞队列
2.LinkedBlockingQueue:由链表结构组成的有界阻塞队列
3.PriorityBlockingQueue:支持优先级排序的无界阻塞队列
4.DelayQueue:使用优先级队列实现的无界的阻塞队列
5.SynchronousQueue:不存储元素的阻塞队列
6.LinkedTransferQueue:由链表结构组成的无界阻塞队列
7.LinkedBlockingDeque:由链表结构组成的双向阻塞队列
标签:Java,队列,阻塞,无界,链表,线程 From: https://blog.51cto.com/u_11315052/6572357