python multiprocessing.Pool 中map、map_async、apply、apply_async的区别
2017-10-10 14:13
369 查看
multiprocessing是python的多进程库,multiprocessing.dummy则是多线程的版本,使用都一样。
其中都有pool池的概念,进程池/线程池有共同的方法,其中方法对比如下 :
There are four choices to mapping jobs to process. Here are the differences:
Multi-args Concurrence Blocking Ordered-results map no yes yes yes apply yes no yes no map_async no yes no yes apply_async yes yes no no
In Python 3, a new function
starmapcan accept multiple arguments.
Note that
mapand
map_asyncare called for a list of jobs in one time, but
applyand
apply_asynccan only called for one job. However,
apply_asyncexecute a job in background therefore in parallel. See examples:
# map results = pool.map(worker, [1, 2, 3]) # apply for x, y in [[1, 1], [2, 2]]: results.append(pool.apply(worker, (x, y))) def collect_result(result): results.append(result) # map_async pool.map_async(worker, jobs, callback=collect_result) # apply_async for x, y in [[1, 1], [2, 2]]: pool.apply_async(worker, (x, y), callback=collect_result)
原文地址: http://blog.shenwei.me/python-multiprocessing-pool-difference-between-map-apply-map_async-apply_async/
相关文章推荐
- Python multiprocessing.Pool: when to use apply, apply_async or map?
- Pool的四种方法比较:Python multiprocessing.Pool: Difference between map, apply, map_async, apply_async
- Python 一个例子 multiprocessing.Pool.apply_async
- python里的apply,applymap和map的区别
- Python多进程multiprocessing.Pool
- python进程池:multiprocessing.pool
- python中高阶函数filter,map,reduce三者的区别
- python之multiprocessing.pool
- python进程池:multiprocessing.pool
- python进程池:multiprocessing.pool
- python进程池:multiprocessing.pool
- python的几个内建函数:apply(),filter(),map(),reduce()
- Python多进程multiprocessing.Pool()
- python之map和reduce的区别
- python的filter,map,zip,reduce,apply
- Python thread pool similar to the multiprocessing Pool?
- python 内置map()和six.moves.map()区别
- Python multiprocessing.Pool与threadpool
- python内置map和six.moves.map的区别
- python进程池:multiprocessing.pool