![cbc7c288e35d91a4bd3ad66ab2c07275.png](https://i-blog.csdnimg.cn/blog_migrate/fb98853c46a829fe16231f15d8d3cbd8.jpeg)
方便的队列
当我们处理多线程的资源共享时,线程模块的管理会变得很复杂。我们已经看到了,Python线程模块提供了很多同步原语,包括锁、信号量、条件变量、事件等。虽然有这么多的选择,但是使用队列可能会是管理线程同步的最佳拍档。队列使用起来很容易,因为该模块提供了同步的,安全的对序列,包括FIFO(先入先出)队列Queue,LIFO(后入先出)队列LifoQueue,和优先级队列PriorityQueue.这些队列都实现了锁原语,能够在多线程中直接使用。可以使用队列来实现线程间的通信:
Queue模块中的常用方法:
- Queue.qsize():返回队列的大小
- Queue.empty():如果队列为空,返回True,反之False
- Queue.full():如果队列满了,返回True,反之False
- Queue.full:与 maxsize 大小对应
- Queue.get([block[, timeout]]):获取队列,timeout等待时间
- Queue.get_nowait() :相当Queue.get(False)
- Queue.put(item):写入队列,timeout等待时间
- Queue.put_nowait(item):相当Queue.put(item,