multiprocessing的异步并发

只是multiprocessing的使用例子,不建议使用多进程的方式,进行并发。最好的方法。是1个进程N个线程的方式(使用的模块是thread和multiprocessing)

def url_req(u):
req_1 = requests.get(u,verify = False)
ResponseTime=float(req_1.elapsed.microseconds)/1000 #响应时间
# print 'records time: %s',%ResponseTime
return "requests results : " + str(ResponseTime)
if __name__ == "__main__":
result = []
#进程数
pool = multiprocessing.Pool(processes = 1)
#循环使用的时候会去进程池pool里面申请一个进程
for i in range(2):
result.append(pool.apply_async(url_req, ("url参数地址",))) #apply_async模块,会比apply模块多个回调函数,同时是异步的
     print('你好')#同时打印几个结果
pool.close()#执行完close后不会有新的进程加入到pool,join函数等待所有子进程结束
pool.join()#等待进程运行完毕,先调用close函数,否则会出错
#进程的执行结果;从result中读出来打印结果
for res in result:
a = res.get()
print a
posted @ 2017-12-11 23:11  小~yytt~  阅读(518)  评论(0编辑  收藏  举报