队列跟栈一样,也是一种操作受限的线性表数据结构
用数组实现的队列叫作 顺序队列
,用链表实现的队列叫作 链式队列
最基本的操作有两个:入队enqueue(),放一个数据到队列尾部;出队dequeue(),从队列头部取一个元素
循环队列
高性能队列Disruptor、Linux环形缓存,都用到了循环并发队列;Java concurrent并发包利用ArrayBlockingQueue来实现公平锁
- 在用数组实现的非循环队列中,队满的判断条件是tail == n,队空的判断条件是head == tail
- 循环队列队列为空的判断条件 head == tail
- 循环队列队满时 (tail+1)%n=