Python 多进程优化程序运行速度
import numpy as np
import time
from multiprocessing import Pool
def process_data():
data = np.ones((1000, 1000))
time.sleep(10)
return data
if __name__ == '__main__':
start_multi = time.time()
pool = Pool(processes=4)
result1 = pool.apply_async(process_data)
result2 = pool.apply_async(process_data)
result3 = pool.apply_async(process_data)
result4 = pool.apply_async(process_data)
result = result1.get() + result2.get() + result3.get() + result4.get()
np.save("./test_multi.npy", result / 4)
print("multiprocessing total time: {}".format(time.time() - start_multi))
pool.close()
pool.join()
start_recur = time.time()
res1 = process_data()
res2 = process_data()
res3 = process_data()
res4 = process_data()
res = res1 + res2 + res3 + res4
np.save("./test_recur.npy", res / 4)
print("recurrent total time: {}".format(time.time() - start_recur))