multiprocessing的异步并发

Posted 小~yytt~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

以上是关于multiprocessing的异步并发的主要内容,如果未能解决你的问题,请参考以下文章

并发编程

并发编程之进程,多路复用,multiprocess模块

多处理:优化并发 HTTP 异步请求的 CPU 使用率

python通过multiprocessing 实现带回调函数的异步调用的代码

自动化脚本多线程并发执行

python之路——进程