进程池的用法

apply()

函数原型:

apply(func[, args=()[, kwds={}]])

该函数用于传递不定参数,主进程会被阻塞直到函数执行结束(不建议使用,并且3.x以后不在出现)。

apply_async()

函数原型:

apply_async(func[, args=()[, kwds={}[, callback=None]]])

与apply用法一样,但它是非阻塞且支持结果返回进行回调。

map()

函数原型:

map(func, iterable[, chunksize=None])

Pool类中的map方法,与内置的map函数用法行为基本一致,它会使进程阻塞直到返回结果。 
注意,虽然第二个参数是一个迭代器,但在实际使用中,必须在整个队列都就绪后,程序才会运行子进程。

具体用法

def run(i):
  print(i)

1.apply_async的用法
pool = Pool()
for i in range(8):
pool.apply_async(run, (i, ))
pool.close()
pool.join()

2.map函数的用法
pool.map(run, [1,2,3,4,5,6])
pool.close()
pool.join()

3.apply的用法
同apply_async的用法一致



posted on 2018-12-04 17:11  曹植  阅读(171)  评论(0编辑  收藏  举报

导航