先进先出,与栈相反。
队列的基本操作包括,入队:将数据添加至队列尾部;出队:从队列头部取出一个元素。
用数组实现的队列叫做顺序队列,用链表实现的队列叫做链式队列。
循环队列
用数组实现队列时,如果队满时,存在数据的搬移(数组扩容后,数据搬移到新数组中)。为了避免数据的搬移,提出了循环队列的概念。
阻塞队列
队空的时候阻塞取数据的操作,队满的时候阻塞插入数据的操作。
是一个生产者-消费者模型。
可以协调生产者和消费者的数量,来提高数据的处理效率。
并发队列
多个线程操作同一个队列,带来了线程安全问题。线程安全的队列被称为并发队列。最直接的办法是:在入队、出队操作加上锁。同一时刻仅允许一个取或者插入操作。
