Python 多进程和数据传递的理解


Posted in Python onOctober 09, 2017

Python 多进程和数据传递的理解

python不仅线程用的是系统原生线程,进程也是用的原生进程

进程的用法和线程大同小异

import multiprocessing 
 
p = multiprocessing.Process(target=fun,args=())

线程的基本方法在进程中都能够使用

但是进程和线程中有一个明显的区别:可以实现多核的运用

python本身会启动一个主进程,并且拥有一个主线程把主进程看做一家之主,那主线程也是他本身,其他线程就相当于老婆们
而进程,长大了的儿子们,线程固然是不能分割的,一家人还是要团结,但是儿子自家的事务,老子却也不能插手,所以,一家只能占用一个CPU实现单核运用的话,生多个儿子那必然就实现了多核运用

GIL锁住的,只是一个进程,让一家人团结

但是一个进程只有这么一把全量锁,线程不能单独跑,那就打包一起跑

多进程就这样完成了一般语言中多线程的优化

数据传递

多线程,多进程中总有要协同的工作,都涉及数据的交互,不过交互方式有些不同

信息进行传递的时候,为了不阻塞执行一般会将数据放入对列当中而不是直接返回

线程中,由于都属于同一个进程,定义一个全局的队列在各线程中就能够压入数据

进程可能运行在不同的CPU上,因此,相互间的传递不能在全局定义,只能通过创建时进行传入

内部操作:传入的队列实际上并不是将引用传入,然后直接操作队列,这毕竟是不同的CPU上的工作

队列的传入实际上是队列拷贝的传入,通过pickle拷贝后进行传入,然后再pickle将数据传回

import multiprocessing 
 
multiprocessing.Queue()

线程和进程都有不同的队列对象,以实现不同的数据交互,不能错位使用

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Python 相关文章推荐
Python解析网页源代码中的115网盘链接实例
Sep 30 Python
用map函数来完成Python并行任务的简单示例
Apr 02 Python
Python开发的实用计算器完整实例
May 10 Python
Python环境搭建之OpenCV的步骤方法
Oct 20 Python
django 数据库连接模块解析及简单长连接改造方法
Aug 29 Python
python实现统计代码行数的小工具
Sep 19 Python
解决keras backend 越跑越慢问题
Jun 18 Python
selenium框架中driver.close()和driver.quit()关闭浏览器
Dec 08 Python
全面介绍python中很常用的单元测试框架unitest
Dec 14 Python
Python .py生成.pyd文件并打包.exe 的注意事项说明
Mar 04 Python
python plt.plot bar 如何设置绘图尺寸大小
Jun 01 Python
python如何利用traceback获取详细的异常信息
Jun 05 Python
Python 加密的实例详解
Oct 09 #Python
Python 3实战爬虫之爬取京东图书的图片详解
Oct 09 #Python
Python3实战之爬虫抓取网易云音乐的热门评论
Oct 09 #Python
Python读取文件内容的三种常用方式及效率比较
Oct 07 #Python
Python引用传值概念与用法实例小结
Oct 07 #Python
Python中执行存储过程及获取存储过程返回值的方法
Oct 07 #Python
Python使用cx_Oracle调用Oracle存储过程的方法示例
Oct 07 #Python
You might like
PHP 中的一些经验积累
2006/10/09 PHP
使用 eAccelerator加速PHP代码的方法
2007/09/30 PHP
php 字符串中的\n换行符无效、不能换行的解决方法
2014/04/02 PHP
PHP入门经历和学习过程分享
2014/04/11 PHP
php使用pdo连接mssql server数据库实例
2014/12/25 PHP
浅谈PHP面向对象之访问者模式+组合模式
2017/05/22 PHP
extjs关于treePanel+chekBox全部选中以及清空选中问题探讨
2013/04/02 Javascript
JS 有趣的eval优化输入验证实例代码
2013/09/22 Javascript
jQuery.holdReady()使用方法
2014/05/20 Javascript
jquery用data方法获取某个元素上的事件
2014/06/23 Javascript
JS实现评价的星星功能
2017/08/20 Javascript
微信小程序上传图片功能(附后端代码)
2020/06/19 Javascript
webpack4 处理CSS的方法示例
2018/09/03 Javascript
iview Upload组件多个文件上传的示例代码
2018/09/30 Javascript
JS中创建自定义类型的常用模式总结【工厂模式,构造函数模式,原型模式,动态原型模式等】
2019/01/19 Javascript
解决layui 三级联动下拉框更新时回显的问题
2019/09/03 Javascript
浅谈layui框架自带分页和表格重载的接口解析问题
2019/09/11 Javascript
js模拟实现百度搜索
2020/06/28 Javascript
python中实现指定时间调用函数示例代码
2017/09/08 Python
Python实现PS图像抽象画风效果的方法
2018/01/23 Python
Python基础教程之内置函数locals()和globals()用法分析
2018/03/16 Python
浅谈解除装饰器作用(python3新增)
2018/10/15 Python
Python使用random.shuffle()打乱列表顺序的方法
2018/11/08 Python
利用python修改json文件的value方法
2018/12/31 Python
Django自定义用户登录认证示例代码
2019/06/30 Python
python集合的创建、添加及删除操作示例
2019/10/08 Python
Python用input输入列表的实例代码
2020/02/07 Python
python实现堆排序的实例讲解
2020/02/21 Python
python实现批量命名照片
2020/06/18 Python
Python通过yagmail实现发送邮件代码解析
2020/10/27 Python
美国知名男士服饰品牌:Brooks Brothers(布克兄弟)
2016/08/25 全球购物
英国最大的在线时尚眼镜店:Eyewearbrands
2019/03/12 全球购物
请说出这段代码执行后a和b的值分别是多少
2015/03/28 面试题
感恩母亲节活动方案
2014/03/04 职场文书
工作经历证明书范文
2014/11/02 职场文书
宿舍管理制度范本
2015/08/07 职场文书