Queue 实现了多生产者、多消费者队列
""" Queue 实现了多生产者、多消费者队列 """ from multiprocessing import Process, Queue import os, time, random from threading import Thread q = Queue(30) # 写数据进程执行的代码: def write(w): f = [] for i in range(1,11): f.append(Obj(w,i)) while True: if not q.full(): q.put(f.pop()) if len(f) == 0: break # 读数据进程执行的代码: def read(q): i = 1 while True: if not q.empty(): ps = q.get() if ps: ps.run(i) if ps.i == 1: break time.sleep(0.1) i += 1 else: pass class Obj(object): def __init__(self,w, i): self.w = w self.i = i def run(self, j): # print(self.w, self.i, j,end='\n') print(self.i) pass if __name__ == '__main__': tb = [] for i in range(6): tb.append(Thread(target=read, daemon=True,args=(q,))) for t in tb: t.start() write('w1') write('w2') write('w3') print('put结束') while True: if q.empty(): break