python模块:queue

1 小序

队列:先进先出数据结构.

2 Usage

2.1 常用方法

序号方法描述
1Queue(maxsize=10)新建队列对象,maxsize队列数据个数,超过,则阻塞,直到数据被消费;若maxsize<=0,数据量不限个数
2put()数据进队列
3get()从队列取数据
4qsize()获取队列数据个数
5empty()判断队列是否有数据,若空,返回True
6full()判断队列数据个数是否达到上限,若达到,返回True
7join()阻塞调用进程,直到队列中所有数据被消费完
8task_done()队列数据消费结束,通知join执行后续操作

2.2 测试

2.2.1 put & get

from queue import Queue

datas_queue = Queue(maxsize=2)

datas_queue.put("hello")
# datas_queue.put("world")
datas = datas_queue.get()
print("data from queue: {}".format(datas))
  • 结果
data from queue: hello

2.2.2 qsize

from queue import Queue

queue_datas = Queue(maxsize=10)
for i in range(10):
    queue_datas.put(i)
    
queue_datas_size = queue_datas.qsize()
print("queue datas size: {}".format(queue_datas_size))
  • 结果
queue datas size: 10

2.2.3 empty

from queue import Queue

queue_datas = Queue(maxsize=10)
queue_empty_temp1 = queue_datas.empty()
print("queue empty: {}".format(queue_empty_temp1))
queue_datas.put(1)
queue_empty_temp2 = queue_datas.empty()
print("queue empty: {}".format(queue_empty_temp2))
  • 结果
queue empty: True
queue empty: False

2.2.4 full

from queue import Queue

queue_datas = Queue(maxsize=3)
for i in range(3):
    queue_datas.put(i)
print("full: {}".format(queue_datas.full()))
  • 结果
full: True

2.2.5 task_done & join

from queue import Queue
# https://www.jb51.net/article/139010.htm
queue_datas = Queue(maxsize=10)
for i in range(10):
    queue_datas.put(i)
for i in range(10):
    datas = queue_datas.get()
    print("datas: {}".format(datas))
    # 队列数据全部消费,通知join,执行后续操作
    queue_datas.task_done()

queue_datas.join()
print("empty: {}".format(queue_datas.empty()))
queue_datas.put(250)
print("add data after join: {}".format(queue_datas.get()))
  • 结果
datas: 0
datas: 1
datas: 2
datas: 3
datas: 4
datas: 5
datas: 6
datas: 7
datas: 8
datas: 9
empty: True
add data after join: 250

【参考文献】
[1]https://docs.python.org/3/library/queue.html
[2]https://www.jb51.net/article/139010.htm
[3]https://www.cnblogs.com/fuzzier/p/5978040.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天然玩家

坚持才能做到极致

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值