最近需要把一张图拆成三部分,生成独立的三张图,写好了python程序后发现运行速度太慢,所以使用多进程加速。
参考程序如下:
from multiprocessing import Pool
import time
def plussum(num_list):
time.sleep(1)
result = num_list+10
print(result)
if __name__ == '__main__':
p = Pool(12)
number = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
time.time()
p.map_async(plussum, number)
p.close()
p.join()
print("finished")
坑:1、数据集 number 虽然是列表,但是不需要做切片;
2、P(12)设定好了进程数量,map函数会把数据集提供给运行在各个进程中的函数,函数接收到的入参已经是数据集中的单个数据,所以不需要用 for 循环去取