import multiprocessing
import queue
import time
def consumer(output_q):
print("time is {0}".format(time.ctime()))
while True:
item = output_q.get()
print("pull" , item , "out of q")
output_q.task_done() #发出信号通知完成任务
print("out of consumer {0}".format(time.ctime()))
def produce(sequeue, input_q):
print("input producer " + time.ctime())
for item in sequeue: #将sequeue的内容放入q仓库中
input_q.put(item)
print("make", item, "into q")
print("in put producer " + time.ctime())
if __name__ == "__main__":
q = multiprocessing.JoinableQueue()
#运行消费者进程
cons_p = multiprocessing.Process(target=consumer, args=(q,))
cons_p.daemon = True
cons_p.start()
#生产多个项,sequeue代表要发送给生产者的项
sequeue = [1, 2, 3, 4, 5]
produce(sequeue, q)
#等待所有项被处理
q.join()
使用joinablequeue的生产者和消费者模型
最新推荐文章于 2024-07-30 17:23:09 发布