- .qsize() 返回队列的大小
- .empty() 如果队列为空,返回True,反之False
- .full() 如果队列满了,返回True,反之False
- .full 与 maxsize 大小对应
- .get([block[, timeout]])获取队列,timeout等待时间
- .get_nowait() 相当Queue.get(False)
- .put(item) 写入队列,timeout等待时间
- .put_nowait(item) 相当Queue.put(item, False)
- .task_done() 在完成一项工作之后,Queue.task_done()函数向任务已经完成的队列发送一个信号
- .join() 实际上意味着等到队列为空,再执行别的操作。
消费者与生产者模型
生产者与消费者模型,
其实是把一个需要进程通信的问题分开考虑
生产者,只需要往队列里面丢东西(生产者不需要关心消费者)
消费者,只需要从队列里面拿东西(消费者也不需要关心生产者)
Web服务器与Web框架之间的关系
多线程的消费者与生产者模型
# 声明队列
>>> q = queue.Queue(maxsize=10)
# 往队列中添加数据
>>> q.put(item)
# 从队列中取数据
>>> item = q.get()
生产者:只关心队列是否已满。没满,则生产,满了就阻塞。
消费者:只关心队列是否为空。不为空,则消费,为空则阻塞。