python判断队列是否为空_python队列Queue

  • Post author:
  • Post category:python


一、Queue

Queue是python标准库中的线程安全的队列(FIFO)实现,提供了一个适用于多线程编程的先进先出的数据结构,即队列,用来在生产者和消费者线程之间的信息传递

队列在多线程中可以共享,替代全局变量,无需加互斥锁。

队列可以并发的派多个线程,对排列的线程处理,并且每个需要处理线程只需要将请求的数据放入队列容器的内存中,线程不需要等待,当排列完毕处理完数据后,线程再准时来取数据即可。请求数据的线程只与这个队列容器存在关系,处理数据的线程down掉不会影响到请求数据的线程,队列会派给其他线程处理这分数据,它实现了解耦,提高效率。

队列内会有一个有顺序的容器,列表与这个容器是有区别的,列表中数据虽然是排列的,但数据被取走后还会保留,而队列中这个容器的数据被取后将不会保留。当必须在多个线程之间安全地交换信息时,队列在线程编程中特别有用。

二、Python四种类型的队例:

Queue:FIFO 即first in first out 先进先出

LifoQueue:LIFO 即last in first out 后进先出

PriorityQueue:优先队列,级别越低,越优先

deque:双边队列

from queue import Queue, LifoQueue, PriorityQueue

1、Queue 先进先出队列:

q = Queue(maxsize=5)

初始化一个队列,默认是不限定队列的长度,也可以通过参数指定队列中数据的maxsize,如果max