queue模块实现了多生产者,多消费者队列。在多线程环境下,该队列能实现多个线程间安全的信息交换。
queue模块介绍
模块实现了3种类型的队列,区别在于队列中条目检索的顺序不同。在FIFO队列中,按照先进先出的顺序检索条目。在LIFO队列中,最后添加的条目最先检索到(操作类似一个栈)。在优先级队列中,条目被保存为有序的(使用heapq模块)并且最小值的条目被最先检索。
queue模块定义了下面的类和异常:
queue模块定义了下面的类和异常:
class queue.Queue(maxsize=0)
FIFO队列的构造器。maxsize为一个整数,表示队列的最大条目数。一旦队列满,插入将被阻塞直到队列中存在空闲空间。如果maxsize小于等于0,队列大小为无限。
class queue.LifoQueue(maxsize=0)
LIFO队列的构造器。maxsize是一个整数,表示队列的最大条目数。一旦队列满,插入将被阻塞直到队列中存在空闲空间。如果maxsize小于等于0,队列大小为无限。
class queue.PriorityQueue(maxsize=0)
优先级队列的构造器。maxsize是一个整数,表示队列的最大条目数。一旦队列满,插入将被阻塞直到队列中存在空闲空间。如果maxsize小于等于0,队列大小为无限。
最小值的条目被最先检索到(最小值的条目即为被sorted(list(entries))[0]返回的条目)。通常一个条目被保存为下面的形式:(priority_number, data)。
最小值的条目被最先检索到(最小值的条目即为被sorted(list(entries))[0]返回的条目)。通常一个条目被保存为下面的形式:(priority_number, data)。