Python中的标准库

多进程multiprocessing的使用

multiprocessing模块还是非常好用的。

单参数函数执行并计算

importmultiprocessingdeff(x):returnx*x# Get all corescores=multiprocessing.cpu_count()# start a poolpool=multiprocessing.Pool(processes=cores)tasks=[1,2,3,4,5]# do parallel calculateprint(pool.map(f,tasks))

其实map函数在执行的时候就已经是并行操作了，只不过multiprocessing模块集成了map方法

多参数函数执行并行计算

Python3 中使用starmap方法来实现

importmultiprocessingdefadd(x,y):returnx+y# Get all worker processescores=multiprocessing.cpu_count()# Start all worker processespool=multiprocessing.Pool(processes=cores)x1=list(range(5))y1=list(range(5))tasks=[(x,y)forxinx1foryiny1]print(pool.starmap(add,tasks))

Python2 中需要一个函数对多参数函数包装下

importmultiprocessingdefadd(x,y):returnx+ydefmerge_add(args):returnadd(*args)# Get all worker processescores=multiprocessing.cpu_count()# Start all worker processespool=multiprocessing.Pool(processes=cores)x1=list(range(5))y1=list(range(5))tasks=[(x,y)forxinx1foryiny1]print(pool.map(merge_add,tasks))