python 多进程multiprocessing 如何获取子进程的返回值?进程池pool,apply_async(),get(),
案例1
# -*- coding: utf-8 -*-
"""
@File : 20200318_摄像头多进程流传输.py
@Time : 2020/3/18 14:58
@Author : Dontla
@Email : sxana@qq.com
@Software: PyCharm
"""
import datetime
from multiprocessing import Pool
import timedef test(p):time.sleep(1)print(datetime.datetime.now())return pif __name__ == "__main__":pool = Pool(processes=2)result = []for i in range(10):'''for循环执行流程:(1)添加子进程到pool,并将这个对象(子进程)添加到result这个列表中。(此时子进程并没有运行)(2)执行子进程(同时执行10个)'''# Dontla 20200319 apply_async()是啥意思?result.append(pool.apply_async(test, args=(i,))) # 维持执行的进程总数为10,当一个进程执行完后添加新进程.pool.close()# Dontla 20200319 阻塞主程序等待子进程执行完成pool.join()'''遍历result列表,取出子进程对象,访问get()方法,获取返回值。(此时所有子进程已执行完毕)'''for i in result:print(i.get())
结果:
D:\20191031_tensorflow_yolov3\python\python.exe C:/Users/SIQI/Desktop/test_multiprocessing/20200318_摄像头多进程流传输.py
2020-03-24 08:56:15.331693
2020-03-24 08:56:15.331693
2020-03-24 08:56:16.332564
2020-03-24 08:56:16.332564
2020-03-24 08:56:17.333423
2020-03-24 08:56:17.333423
2020-03-24 08:56:18.334177
2020-03-24 08:56:18.334177
2020-03-24 08:56:19.334215
2020-03-24 08:56:19.334215
0
1
2
3
4
5
6
7
8
9Process finished with exit code 0
案例2
# -*- coding: utf-8 -*-
"""
@File : test4.py
@Time : 2020/3/24 8:40
@Author : Dontla
@Email : sxana@qq.com
@Software: PyCharm
"""
# -*- coding: utf-8 -*-
"""
@File : 20200318_摄像头多进程流传输.py
@Time : 2020/3/18 14:58
@Author : Dontla
@Email : sxana@qq.com
@Software: PyCharm
"""
import datetime
from multiprocessing import Pool
import timedef test(p):time.sleep(1)print(datetime.datetime.now())return pif __name__ == "__main__":pool = Pool(processes=2)result = []for i in range(10):'''for循环执行流程:(1)添加子进程到pool,并将这个对象(子进程)添加到result这个列表中。(此时子进程并没有运行)(2)执行子进程(同时执行10个)'''# Dontla 20200319 apply_async()是啥意思?# result.append(pool.apply_async(test, args=(i,))) # 维持执行的进程总数为10,当一个进程执行完后添加新进程.# get()是一个阻塞线程的方法?是的,要获取函数结果,必须阻塞# print(pool.apply_async(test, args=(i,)).get())pool.apply_async(test, args=(i,)).get()# pool.close()# Dontla 20200319 阻塞主程序等待子进程执行完成# pool.join()'''遍历result列表,取出子进程对象,访问get()方法,获取返回值。(此时所有子进程已执行完毕)'''# for i in result:# print(i.get())print('over')
D:\20191031_tensorflow_yolov3\python\python.exe C:/Users/SIQI/Desktop/test_multiprocessing/test4.py
2020-03-24 09:05:54.157505
2020-03-24 09:05:55.157542
2020-03-24 09:05:56.157578
2020-03-24 09:05:57.157614
2020-03-24 09:05:58.158199
2020-03-24 09:05:59.158941
2020-03-24 09:06:00.159096
2020-03-24 09:06:01.159715
2020-03-24 09:06:02.160607
2020-03-24 09:06:03.161478
overProcess finished with exit code 0
参考文章1:python中使用多进程multiprocessing并获取子进程的返回值
参考文章2:Python对进程Multiprocessing子进程返回值
python 多进程multiprocessing 如何获取子进程的返回值?进程池pool,apply_async(),get(),相关推荐
- python 多进程 multiprocessing 进程池 pool apply_async()函数与apply()函数的用法
apply函数主要用于传递不定参数,主进程会被阻塞到函数执行结束.也就是说只有apply里面的内容被执行完了,才会进行执行主函数的内容. 参考文章1:python进程池Pool的apply与apply ...
- Python 多进程 multiprocessing 使用示例
参考:http://blog.csdn.net/qdx411324962/article/details/46810421 参考:http://www.lxway.com/4488626156.htm ...
- Python 多进程 multiprocessing.Pool类详解
multiprocessing模块 multiprocessing包是Python中的多进程管理包.它与 threading.Thread类似,可以利用multiprocessing.Process对 ...
- python process返回值_如何恢复传递给multiprocessing.Process的函数的返回值?
如何恢复传递给multiprocessing.Process的函数的返回值? 在下面的示例代码中,我想恢复函数的返回值worker.我该怎么做呢?这个值存储在哪里? 示例代码: import mult ...
- python 进程池 freeze_support_Python 多进程并发操作中进程池Pool的实例
在利用Python进行系统管理的时候,特别是同时操作多个文件目录,或者远程控制多台主机,并行操作可以节约大量的时间.当被操作对象数目不大时,可以直接利用multiprocessing中的Process ...
- python进程池调用实例方法_Python 多进程并发操作中进程池Pool的实例
在利用Python进行系统管理的时候,特别是同时操作多个文件目录,或者远程控制多台主机,并行操作可以节约大量的时间.当被操作对象数目不大时,可以直接利用multiprocessing中的Process ...
- python多线程处理数据并获得子线程返回值
python多线程处理数据并获得子线程返回值 前言 python3中的多线程 用方法包装函数 用类包装函数 获取子线程返回值 从类中返回值 其他方法 前言 python中采用多线程方式处理大数据量的数 ...
- python os.system_python中os.system()的返回值
最近遇到os.system()执行系统命令的情况,上网搜集了一下资料,整理如下,以备不时之需,同时也希望能帮到某些人. 一.python中的 os.system(cmd)的返回值与linux命令返回值 ...
- python中的content方法_content最新:python计算Content-MD5并获取文件的Content-MD5值方式_爱安网 LoveAn.com...
关于"content"的最新内容 聚合阅读 这篇文章主要介绍了python计算Content-MD5并获取文件的Content-MD5值方式,具有很好的参考价值,希望对大家有所帮助 ...
最新文章
- php mysql备份代码_PHP备份/还原MySQL数据库的代码
- 很久没有回到我51的家啦!
- 003 Android之线性布局与基础控件
- MySQL(五) —— 子查询
- python定时任务,隔月执行,隔定时执行
- PS将两张图像合成为一张
- 战神笔记本电脑自带access吗_书评:6本二次元小说,每一本都很有想象力,你都读过吗?...
- jquery中的页面加载方法load()
- 微信小程序开发(一):小程序代码构成
- plsql 查看表结构所有的字段_plsql导出所有表的数据
- 如何设置路由器的中继模式-机器人局域网组网攻略
- 我爱你 php代码怎么打,微信翻译代码我爱你怎么写?微信翻译表白代码介绍大全...
- Linux中scp报 not a regular file错误解决方案
- 微信可以修改微信号了
- vscode 选择ts版本为项目使用的版本
- pgsql 常用命令
- 怎样加入一个开源项目?
- 五一清北学堂培训之Day 3之DP
- python如何解决打不开txt文件的问题(UnicodeDecodeError)
- 百度搜索引擎优化指南2.0