FIFO,即 First In First Out,是我们对队列最常见的理解定义。想象一下,在银行或取款机前排成一队的情况,排在最前面的人通常会最先接受服务,而排在后面的人依次接受服务。Python 的 Queue 类正是如此。
Queue 类通常被用作某种沟通媒介,当一些对象产生数据而其他对象需要消耗这些数据时,且可能以不同的速度进行。设想一个消息应用从网络接收消息,但同一时间只能向用户展示一条消息。其他的消息会按照接收顺序缓存在队列中。
当考虑下一个对象被消耗时才需要访问数据结构中的数据时,Queue 类便成为了一个理想的选择。在这种情况下,使用列表会效率低下,因为在列表的头部插入(或移除)数据需要移动剩余的所有元素。