可以用Parallel来多线程执行循环操作

from joblib import Parallel, delayed
import multiprocessing

inputs = range(10) 
def processInput(i):
    return i * i

num_cores = multiprocessing.cpu_count()

results = Parallel(n_jobs=num_cores)(delayed(processInput)(i) for i in inputs)
print(results)

几个关键点:
函数参数说明:
Parallel(n_jobs=2): 指定两个CPU(默认是分配给不同的CPU)
后面的delayed(sqrt)表示要用的函数是sqrt,这里这种用法就非常类似C++里面的委托(delegate)。
(i ** 2) for i in range(10): 这里注意(i**2)的括号和delayed(sqrt)是紧挨着的。这一小段表示要传递给delayed中指定的函数的参数是i^2。

多参数并行
由于Python提供了很好的多参数同时并行机制,可以用product、zip等方法将多个集合放在一起,那么就可以实现多参数的并行。

何时并行

python 并行for python 并行循环_多参数