一、queue模块
(一)Queue FIFO
1、Queue(maxsize=0) 构造实例
2、.put(item,block=True,timeout=None) 放入数据项
3、.get(block=True,timeout=None) 获取数据项
4、.task_done()声明当前队列任务处理完毕
5、.join()队列所有项处理完毕前阻塞
应用:
import threading
import queue
import time
import random
def producer(data_queue):
for i in range(5):
time.sleep(0.5)
item = random.randint(1,100)
data_queue.put(item)
print(f’{threading.current_thread().name}在队列中放入数据项:{item}’)
def consumer(data_queue):
while True:
try:
item = data_queue.get(timeout=3)
print(f’{threading.current_thread().name}从队列中移除了{item}’)
except queue.Empty:
break #跳出当前的循环
else:
data_queue.task_done()
def major():
q = queue.Queue()
threads = []
p =threading.Thread(target=producer,args=(q,))
p.start()
for i in range(2)