python当中的队列
源码在 Lib/queue.py
提供三种队列
- Queue(普通先进先出队列)
- LifoQueue(后进先出队列)
- PriorityQueue(优先级队列)
提供封装的方法为
- qsize
- empty
- full
- put
- put_nowait
- get
- get_nowait
- task_done
- join
这里着重说一下join()
阻塞调用线程,直到队列中的所有任务被处理掉。
只要有数据被加入队列,未完成的任务数就会增加。当消费者线程调用task_done()以指示该项目已检索并且其上的所有工作都已完成时,计数将减少。当未完成的任务数降到0,join()解除阻塞。
示例如下:
1 | def worker(): |