python之队列

python之队列


一、队列是什么?

1、先进先出
2、后进先出
3、优先级队列

二、使用步骤

1.引入库

1、先进先出 代码如下(示例):

from queue import Queue, LifoQueue, PriorityQueue
# 实例化一个队列对象
q = Queue(6)#可以不限制队列大小
# 队列添加数据:put,put_nowait
q.put('python001')
q.put('python006', timeout=3)  # 参数timeout 设置等待时间
q.put_nowait('pythhn00000')   # 添加数据不等待
#qsize:获取队列中数据的长度
print(q.qsize())
#get: 获取数据
print(q.get())
# 判断队列是否为空
print(q.empty())
# 判断队列是否已满
print(q.full())

"""
task_done: 向队列发送一条任务执行完毕的消息,添加3条数据,就要进行3次task_done,否则join会一直等待。
join: 等待队列中所有的任务是否执行完毕
"""

2、后进先出 代码如下(示例):

from queue import LifoQueue, PriorityQueue

# 后入先出
# q = LifoQueue()
# q.put(11)
# q.put(22)
# print(q.get())


# 优先级队列:(队列中添加的数据为元组,元组的一个值,用来设置队列的优先级)
q = PriorityQueue()
q.put((-15, '9999'))
q.put((77, '9999'))
q.put((4, '9999'))
q.put((99, '9999'))
print(q.get())
print(q.get())
print(q.get())
print(q.get())

案例:
读取txt文件中的url地址,将url地址放入队列中

'''需求:并发读取txt中的URL地址'''
    list_test = []
    filename = "url.txt"
    file = open(filename, "r")
    # 列表推导式
    list_test = [line.strip("\n") for line in file]
    url_list=[q.put(i) for i in list_test]

def url_test():
    while not q.empty():
        url= q.get()
        
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

姑娘别秃头

你的鼓励是为我创作最大的动力

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

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

打赏作者

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

抵扣说明:

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

余额充值