BlockingQueue队列

167 阅读1分钟

什么是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)