from multiprocessing import Process,JoinableQueue #子进程 def shang_pin_xinxi(q,cont): while True: page = q.get() print("进程:{0}获取了数据{1}".format(cont,page)) q.task_done() #主进程 def producer(q): for j in range(20): q.put(j) print("{}放入队列".format(j)) q.join() if __name__ == "__main__": q = JoinableQueue() #开启多进程 for i in range(20): p1 = Process(target=shang_pin, args=(q, i)) p1.daemon = True # 设置为守护进程,在主线程停止时p也停止,但是不用担心,producer内调用q.join保证了consumer已经处理完队列中的所有元素 p1.start() producer(q)