模块 queue 实现了线程安全的 FIFO 队列(first-in first-out)。它被用于在不同的线程之间安全传递消息,例如生产者和消费者线程。
基本的 FIFO 队列
类 Queue 实现了基本的 FIFO 容器,使用方法 put() 添加元素到队列尾部,get() 方法从队列头部获取信息。
执行:
LIFO 队列
LIFO 队列(last-in first-out)正好相反,最后一个添加进去的元素,第一个取出。类似数据结构栈(Stack)。
执行:
优先级队列 Priority Queue
有时候从队列处理数据的顺序要依赖他们的某些属性,而不仅仅是他们添加进队列的顺序。这样的队列叫做优先级队列(Priority Queue),它依赖队列中元素的优先级处理元素。查看下面的例子。
执行:
本例使用多个线程从队列获取 Job,当 get() 获取 Job 时,会根据 Job 定义好的优先级来获取元素,比较值越小,优先级越高。
閱讀更多 趣喜歡編程 的文章