队列

队列:跟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()

运行结果:

原文地址:https://www.cnblogs.com/Mezhou/p/13854991.html