队列:跟list差不多,只是消费完一个就少一个
1、异步处理
2、保证顺序
import queue import random import threading import time orders_q = queue.Queue()#队列异步处理,保证顺序执行 #生成者 def produce(): for i in range(10): order_id = random.randint(1,99999) print('生成订单:',order_id) orders_q.put(order_id) time.sleep(1) #消费者 def consumer(): while True: if orders_q.qsize()>0: order_id = orders_q.get() print('consumer1,订单落库:',order_id) def consumer2(): while True: if orders_q.qsize()>0: order_id = orders_q.get() print('consumer2,订单落库:',order_id) t = threading.Thread(target=produce) t.start() t = threading.Thread(target=consumer) t.start() t = threading.Thread(target=consumer2) t.start()
运行结果: