python3利用多进程实现并发
这里有一个需求就是同时发起多个请求 其中一个请求先返回数据 就停止其他请求
from multiprocessing import Process,Pool import time allData = [] p = "" #子进程任务 def one(): time.sleep(1) return 'one' # 子进程任务 def two(): time.sleep(2) return 'two' #主进程调用回调函数 def alterUser(msg): global allData global p allData.append(msg) p.terminate() def index(): start = time.time() global p p = Pool(2) p.apply_async(func=one, callback=alterUser) p.apply_async(func=two, callback=alterUser) # 当func执行完毕后,return的东西会给到回调函数callback print("---start----") p.close() # 关闭进程池,关闭后,p不再接收新的请求。 p.join() print("---end-----") end = time.time() print(end - start) global allData print(allData) if __name__ == "__main__": index()