python爬虫-25-python多线程安全队列Queue详解

网友投稿 908 2022-11-06

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。

python爬虫-25-python多线程安全队列Queue详解

1、python之Queue介绍Python中的queue模块中提供了同步的、线程安全的队列类,包括FIFO(先进先出)队列Queue,LIFO(后入先出)队列LifoQueue。这些队列都实现了锁原语(可以理解为原子操作,即要么不做,要么都做完),能够在多线程中直接使用。2、python之Queue方法初始化Queue(maxsize):创建一个先进先出的队列;初始化LifoQueue(maxsize):创建一个先进后出的队列;qsize():返回队列的大小;empty():判断队列是否为空;full():判断队列是否满了;get():从队列中取最后一个数据;put():将一个数据放到队列中。3、python之Queue实操3.1 创建一个先进先出的队列import queueimport randomq = queue.Queue(maxsize=5)  # 创建先进先出队列,并指定只能存5个数据while True:    if q.full():  # 判断队列是否满了        print("队列满了呀,放不进来数据咯")        break    else:        Jier = random.random()  # 生成一个随机数        print("往队列q中存入了数据:{}".format(Jier))        q.put(Jier)  # 存放数据print("队列q的数据存储了{}个".format(q.qsize()))while True:    if q.empty():  # 判断队列是否空了        print("队列q空了呀")        break    else:        print("从队列q中取出了数据:{}".format(q.get()))  # 取出数据运行结果如下:往队列q中存入了数据:0.16770815255552796往队列q中存入了数据:0.6629318061550314往队列q中存入了数据:0.1541872174654343往队列q中存入了数据:0.6109450539369857往队列q中存入了数据:0.23136112820862198队列满了呀,放不进来数据咯队列q的数据存储了5个从队列q中取出了数据:0.16770815255552796从队列q中取出了数据:0.6629318061550314从队列q中取出了数据:0.1541872174654343从队列q中取出了数据:0.6109450539369857从队列q中取出了数据:0.23136112820862198队列q空了呀从上面可以看到,数据确实是先存进队列的,先被取出来消耗掉了。3.2 创建一个先进后出的队列import queueimport randomq = queue.LifoQueue(maxsize=5)while True:    if q.full():        print("队列满了呀,放不进来数据咯")        break    else:        Jier = random.random()        print("往队列q中存入了数据:{}".format(Jier))        q.put(Jier)print("队列q的数据存储了{}个".format(q.qsize()))while True:    if q.empty():        print("队列q空了呀")        break    else:        print("从队列q中取出了数据:{}".format(q.get()))运行结果如下:往队列q中存入了数据:0.057462853458912666往队列q中存入了数据:0.48150116771611506往队列q中存入了数据:0.5694934757701845往队列q中存入了数据:0.16658438449076918往队列q中存入了数据:0.67144559563464队列满了呀,放不进来数据咯队列q的数据存储了5个从队列q中取出了数据:0.67144559563464从队列q中取出了数据:0.16658438449076918从队列q中取出了数据:0.5694934757701845从队列q中取出了数据:0.48150116771611506从队列q中取出了数据:0.057462853458912666队列q空了呀可以看到当我们使用python中的Queue模块创建了一个先进后出的队列之后,确实是先存放的数据,最后被消耗了,对吧。至此,本文结束,相关内容每日更新。

往期推荐k8s部署-42-带你深入学习ingress-nginx(上)k8s部署-43-带你深入学习ingress-nginx(下)k8s部署-44-带你深入学习ingress-nginx(终)

上一篇:软件测试培训之网站测试技术要领
下一篇:软件测试培训之获取负面测试用例的技术
相关文章

 发表评论

暂时没有评论,来抢沙发吧~