python 进程池2 - Pool相关函数
来源:互联网 发布:南京中兴软件测试 编辑:程序博客网 时间:2024/05/17 23:56
1、apply(func[, args[, kwds]])
apply用于传递不定参数,同python中的apply函数一致(不过内置的apply函数从2.3以后就不建议使用了),主进程会阻塞于函数。
主进程的执行流程同单进程一致。
2、apply_async(func[, args[, kwds[, callback]]])
与apply用法一致,但它是非阻塞的且支持结果返回后进行回调。
主进程循环运行过程中不等待apply_async的返回结果,在主进程结束后,即使子进程还未返回整个程序也会退出。虽然 apply_async是非阻塞的,但其返回结果的get方法却是阻塞的,如使用result.get()会阻塞主进程。
如果我们对返回结果不感兴趣, 那么可以在主进程中使用pool.close与pool.join来防止主进程退出。注意join方法一定要在close或terminate之后调用。
3、map(func, iterable[, chunksize])
map方法与在功能上等价与内置的map(),只不过单个任务会并行运行。它会使进程阻塞直到结果返回。
但需注意的是其第二个参数虽然描述的为iterable, 但在实际使用中发现只有在整个队列全部就绪后,程序才会运行子进程。
4、map_async(func, iterable[, chunksize[, callback]])
与map用法一致,但是它是非阻塞的。其有关事项见apply_async。
5、imap(func, iterable[, chunksize])
与map不同的是, imap的返回结果为iter,需要在主进程中主动使用next来驱动子进程的调用。即使子进程没有返回结果,主进程对于gen_list(l)的 iter还是会继续进行, 另外根据python2.6文档的描述,对于大数据量的iterable而言,将chunksize设置大一些比默认的1要好。
for x in pool.imap(pool_test, gen_list(l)):
pass
6、imap_unordered(func, iterable[, chunksize])
同imap一致,只不过其并不保证返回结果与迭代传入的顺序一致。
7、close()
关闭pool,使其不再接受新的任务。
8、terminate()
结束工作进程,不再处理未处理的任务。
9、join()
主进程阻塞等待子进程的退出, join方法要在close或terminate之后使用。
- python 进程池2 - Pool相关函数
- python 进程池2 - Pool相关函数
- Python多进程Pool相关函数<转>
- Python 进程池 Pool
- python进程池:multiprocessing.pool
- python进程池:multiprocessing.pool
- python进程池:multiprocessing.pool
- python中的进程池Pool
- 进程池Pool(python版)
- python进程池:multiprocessing.pool
- python进程池:multiprocessing.pool
- python多进程中的进程池pool
- 【Python】python进程池:multiprocessing.pool
- python 进程池1 - Pool使用简介
- Python生成进程方法2-Pool
- Python 多进程并发操作中进程池Pool
- Python多进程并发操作进程池Pool
- Python多进程——进程池Pool
- Android基础——Activity生命周期解读
- 关于DataFrame的文本数据导入
- iOS最大推送消息长度
- SQL(行列互换)
- softmax分类器
- python 进程池2 - Pool相关函数
- 【翻译】Android Support Library Setup(三)
- Python 编码风格指南中译版(Google SOC)
- 欢迎使用CSDN-markdown编辑器
- smarty模板初步学习(smarty模板文件中,开始符、结束符 与变量之间不能有空格)
- 文章标题
- Java Study之语法小笔记
- svnync svn同步
- (一)等价类划分法