python多进程中多个参数函数的使用

python多进程中多个参数函数的使用

1、在多参数函数,如果只想在多进程任务中依次取一个参数可迭代对象中的每个值,其他参数是固定的,使用偏函数来构建单参数函数。

2、不要用lambda函数代替偏函数,否则会报局部函数不能序列化的错误。

实例

from multiprocessing import Pool
from tqdm import tqdm
import numpy as np
import math
import time
from functools import partial
 
def func(x,y):
    time.sleep(0.1)
    return math.sin(x)+math.cos(y)
  
with Pool(processes = 20) as pool:
    result = list(tqdm(pool.imap(partial(func,y = math.pi), np.linspace(0,2*math.pi,1000)), total=1000))

发表评论

后才能评论