from multiprocessing import Process,Queue import requests def consumer(q): while True: tup = q.get() if tup: name,res =tup with open('%s.html'%name,mode='w',encoding='utf-8') as f: f.write(res) else:break def producter(name,url,q): res = requests.get(url).text q.put((name,res)) if __name__ == '__main__': q = Queue() url_dic = { '临汾58':'https://linfen.58.com/?utm_source=market&spm=u-2d2yxv86y3v43nkddh1.BDPCPZ_BT', '北京赶集':'http://bj.ganji.com/', 'e_val博客':'https://www.cnblogs.com/eva-j/' } #同时开启三个进程 url_obj =[] for name,value in url_dic.items(): p = Process(target=producter,args=(name,value,q)).start() url_obj.append(p) p1 = Process(target=consumer,args=(q,)) p1.start() for p in url_obj: p.join() q.put(None)