承上文:python ---- 队列实现一个简单的业务(一)
还原场景:
import threading # 多线程
# 鲁达包子铺
def luzhishen(user, num, money):
print("%s:老板我要%d个包子,这是%d块您收好。" % (user, num, money))
print("鲁智深:给您的%d个包子,您慢走。" % num)
def my_worker():
for i in range(100000):
luzhishen("李逵", 1, 3)
luzhishen("张清", 2, 6)
# 创建多线程容器
threads = [threading.Thread(target=my_worker) for i in range(50)]
[i.start() for i in threads] # 开启多线程
[i.join() for i in threads] # 阻塞主线程
这是结果:(鲁智深懵了⊙▃⊙)
那么,怎么帮鲁智深一劳永逸呢?
引入队列:
在my_worker方法中不是直接调用luzhishen方法,而是将用户入队。
import threading
import redis
import jso