在服务器资源丰富的情况下,可以启用多进程加速大规模数据的处理过程。
本节以demo展示,输入1000个数组成的列表,以列表的形式对应输出其平方结果。
定义基础func功能函数:输入一个数,输出其平方结果。
开启10个进程,每个进程执行一遍func函数。
设置1000次循环,每次循环调用一个进程,执行一步func功能。
import multiprocessing as mp
def func(x):
return x**2
def generate_data(size):
return list(range(size))
def muilt_process(input_list):
pool = mp.Pool(processes=10) #10个进程
result = []
for x in input_list:
result.append(pool.apply_async(func,(x,)))
print ("The main's mark")
pool.close()
pool.join()
print ("All's done!")
return [i.get() for i in result] #注意每个进程返回的结果需要执行.get方法获取数值
if __name__== "__main__":
print(muilt_process(generate_data(100)))