进程池的使用:
当需要创建的⼦进程数量不多时, 可以直接利⽤multiprocessing.Process动态生成多个进程, 但如果要创建很多进程时,⼿动创建的话⼯作量会非常大,此时就可以⽤到multiprocessing模块提供的Pool去创建一个进程池。
常用的函数如下:
apply_async(func, args, kwds)
:使⽤⾮阻塞⽅式调⽤func(任务并⾏执⾏),args为传递给func的参数列表,kwds为传递给func的关键字参数列表close()
:关闭Pool,使其不再接受新的任务join()
:主进程阻塞,等待⼦进程的退出,必须在close或terminate之后使⽤
from multiprocessing import Pool
process_num = 20
pool = Pool(process_num)
for i_main in range(y):
for j_main in range(x):
pool.apply_async(main,args=(inputdir,outdir,))
pool.close()
pool.join()