queue是第一个队列模块,元素先进先出,取了就没有了
这里用queue模块实现简单的消费生产者模型
queue就是队列,是线程安全的,只能一边拿一边加元素进去
import queue
import threading
message = queue.Queue(10)
def produce(i):#生产者
#while True:
msg = message.put(i)#元素放进队列
print('put:',i)
def consumer(i):#消费者
#while True:
msg = message.get()#等待拿走元素,如果一直没有,线程不会结束,而且队列内一个元素被拿走了就在队列里面去除了
print(msg)
for i in range(10):
t = threading.Thread(target=produce,args=(i,))
t.start()
print(message.qsize())
for i in range(15):#每个人去队列里面取值
t = threading.Thread(target=consumer,args=(i,))
t.start()
print(message.qsize())