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

1、python之Queue介绍


Python中的queue模块中提供了同步的、线程安全的队列类,包括FIFO(先进先出)队列Queue,LIFO(后入先出)队列LifoQueue。这些队列都实现了锁原语(可以理解为原子操作,即要么不做,要么都做完),能够在多线程中直接使用。

2、python之Queue方法

  1. 初始化Queue(maxsize):创建一个先进先出的队列;
  2. 初始化LifoQueue(maxsize):创建一个先进后出的队列;
  3. qsize():返回队列的大小;
  4. empty():判断队列是否为空;
  5. full():判断队列是否满了;
  6. get():从队列中取最后一个数据;
  7. put():将一个数据放到队列中。

3、python之Queue实操

3.1 创建一个先进先出的队列

import queue
import random

q = 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 创建一个先进后出的队列

剩余内容请转至VX公众号 “运维家” ,回复 “186” 查看。


------ “运维家” ,回复 “186”  ------

------ “运维家” ,回复 “186”  ------

------ “运维家” ,回复 “186”  ------


运维工程师是干什么的,收单猫运维工程师,武威光伏运维工程师,西安运维交付工程师招聘,石家庄网络运维工程师招聘;

数据中心运维基础工程师,运维工程师刚进公司什么都不会,顺丰的it运维工程师,佛山IDC机房运维工程师招聘,武汉仕云运维工程师加班多吗;

运维工程师T1,设施运维工程师转型,erp运维工程师培训课题,江西环保运维工程师招聘,通富微电子桌面运维工程师;

成都科技园运维工程师招聘,运维工程师的英语怎么说,运维工程师ppt,粤电风 电运维工程师咋样,运维工程师的薪酬。