什么是BlockingQueue?
线程通信的一个工具,在任意时刻,不管并发有多高,在单jvm上,同一时间永远只有一个线程能够对队列进行入队或者出队操作
队列类型
1.无限队列 (unbounded queue ) - 几乎可以无限增长
2.有限队列 ( bounded queue ) - 定义了最大容量
队列数据结构(队列实质上是一种存储的数据结构)
1.通常用链表或者数组实现
2.一般而言队列具备FIFO先进先出的特性,当然也有双端队列(Deque)优先级
3.主要操作:入队(EnQueue)与出队(Dequeue)
常见的4种阻塞队列
1.ArrayBlockingQueue 由数组支持的有界队列
基于同步队列和条件队列实现的同步阻塞队列
2.LinkedBlockingQueue 由链接节点支持的可选有界队列
3.PriorityBlockingQueue 由优先级堆支持的无界优先级队列
4.DelayQueue 由优先级堆支持的、基于时间的调度队列
应用场景
1.线程池 2.springCloud-Eureka的三级缓存 3.Nacos 4.Neety 5.MQ(RoketMQ)