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()