#/usr/bin/env python #-*- coding:utf-8-*- import os import time import random from multiprocessing import Process,Queue def put_data(q,urls): print("Process %s Running..."%(os.getpid())) for url in urls: q.put(url) print("put %s in queue..."%url) time.sleep(random.randint(1,3)) def get_data(q): print("Process %s Running..."%(os.getpid())) while True: url=q.get(True) print("get %s from queue..."%url) if __name__==‘__main__‘: print("Main Process %s Running..."%(os.getpid())) q=Queue() writer_process1=Process(target=put_data,args=(q,[‘url1‘,‘url2‘,‘url3‘])) writer_process2=Process(target=put_data,args=(q,[‘url5‘,‘url6‘,‘url7‘])) writer_process3=Process(target=put_data,args=(q,[‘url5‘,‘url6‘,‘url7‘])) reader_process=Process(target=get_data,args=(q,)) writer_process1.start() writer_process2.start() writer_process3.start() reader_process.start()
原文:https://www.cnblogs.com/boye169/p/14965902.html