import multiprocessing as mp
defjob(x):return x*x
defmulticore():
pool = mp.Pool()# 无参数时,使用所有cpu核# pool = mp.Pool(processes=3) # 有参数时,使用CPU核数量为3
res = pool.map(job,range(10))print(res)if __name__ =='__main__':
multicore()
运行结果:
[0,1,4,9,16,25,36,49,64,81]
2 调用函数传入一对参数
import multiprocessing as mp
import itertools
defjob(r, item):(x, y)= item
return x * y
defmulticore(z):
x_y =list(itertools.product(range(10),range(10)))
pool = mp.Pool()# 无参数时,使用所有cpu核# pool = mp.Pool(processes=3) # 有参数时,使用CPU核数量为3
res = pool.map(job, x_y)return res
if __name__ =='__main__':
res = multicore()print(res)
3 调用函数传入多个参数
import multiprocessing as mp
import itertools
from functools import partial
defjob(z, r, item):(x, y)= item
return x * y + z + r
defmulticore(z):
x_y =list(itertools.product(range(10),range(10)))
r =2
func = partial(job, z, r)
pool = mp.Pool()# 无参数时,使用所有cpu核# pool = mp.Pool(processes=3) # 有参数时,使用CPU核数量为3
res = pool.map(job, x_y)return res
if __name__ =='__main__':
res = multicore(1)print(res)