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 字典(Dictionary)操作详解
Mar 11 Python
python实现监控windows服务并自动启动服务示例
Apr 17 Python
python实现的二叉树算法和kmp算法实例
Apr 25 Python
python实现多进程代码示例
Oct 31 Python
详解Python计算机视觉 图像扭曲(仿射扭曲)
Mar 27 Python
对Python强大的可变参数传递机制详解
Jun 13 Python
python代码区分大小写吗
Jun 17 Python
带你学习Python如何实现回归树模型
Jul 16 Python
python GUI计算器的实现
Oct 09 Python
Python第三方库安装缓慢的解决方法
Feb 06 Python
Python列表删除重复元素与图像相似度判断及删除实例代码
May 07 Python
详解python字符串驻留技术
May 21 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 curl模拟浏览器采集阿里巴巴的实现代码
2011/04/20 PHP
Docker 如何布置PHP开发环境
2016/06/21 PHP
PHP简单预防sql注入的方法
2016/09/27 PHP
鼠标放在图片上显示大图的JS代码
2013/03/26 Javascript
JavaScript中instanceof与typeof运算符的用法及区别详细解析
2013/11/19 Javascript
JS 获取鼠标左右键的键值方法
2014/10/11 Javascript
jQuery中end()方法用法实例
2015/01/08 Javascript
javascript数据结构之二叉搜索树实现方法
2015/11/25 Javascript
js改变css样式的三种方法推荐
2016/06/28 Javascript
jQuery元素属性操作实例(设置、获取及删除元素属性)
2016/09/08 Javascript
最全面的JS倒计时代码
2016/09/17 Javascript
Bootstrap table简单使用总结
2017/02/15 Javascript
Angular中的$watch、$watchGroup、$watchCollection
2017/06/25 Javascript
jQuery实现的简单前端搜索功能示例
2017/10/28 jQuery
Bootstrap 3多级下拉菜单实例
2017/11/23 Javascript
node.js+express+mySQL+ejs+bootstrop实现网站登录注册功能
2018/01/12 Javascript
微信小程序动画(Animation)的实现及执行步骤
2018/10/28 Javascript
python回调函数用法实例分析
2015/05/09 Python
浅析Python中return和finally共同挖的坑
2017/08/18 Python
Python实现压缩文件夹与解压缩zip文件的方法
2018/09/01 Python
Python上下文管理器用法及实例解析
2019/11/11 Python
使用Pandas将inf, nan转化成特定的值
2019/12/19 Python
Move Free官方海外旗舰店:美国骨关节健康专业品牌
2017/12/06 全球购物
马来西亚领先的在线礼品店:Giftr
2018/08/23 全球购物
北美最大的参茸药食商城:德成行
2020/12/06 全球购物
股权收购意向书
2014/04/01 职场文书
公证委托书模板
2014/04/03 职场文书
《得道多助,失道寡助》教学反思
2014/04/19 职场文书
小学生十佳少年事迹材料
2014/08/20 职场文书
法定代表人身份证明书
2015/06/18 职场文书
2015年中秋放假通知范文
2015/08/18 职场文书
Python实现生成bmp图像的方法
2021/06/13 Python
详解jQuery的核心函数和事件处理
2022/02/18 jQuery
分析SQL窗口函数之聚合窗口函数
2022/04/21 Oracle
Python+DeOldify实现老照片上色功能
2022/06/21 Python
Redis Lua脚本实现ip限流示例
2022/07/15 Redis