一、队列概念以及特点
1、概念
先进先出的一种线性结构。
2、特点
一般包含两个指针,一个指向队首,一个指向队尾。我这里默认都是-1,入队的时候队尾指针向后移动一位,也就是+1操作,出队的时候队首指针向后移动一位,也就是+1操作。
二、生活案例
- 比如上厕所,如果坑位只有一个,想蹲坑的人有5个,那肯定要排队,先进去的先出来,出来后下一个继续进去。先进先出。
- 再比如以银行叫号,窗口不够用,排队人太多,需要一个一个的办理业务,也是先进先出。
- 等等
三、种类
- 数组队列
- 链表队列
- 循环队列
- 阻塞队列
- 并发队列
四、应用场景
- 高性能队列Disruptor,采取了循环并发队列
- Java的concurrent并发包下的ArrayBlockingQueue
五、图解先进先出
1、入队
队尾指针每次向后移动一位。
2、出队
队首指针每次向后移动一位。