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 ORM框架SQLAlchemy学习笔记之数据查询实例
Jun 10 Python
python使用PIL缩放网络图片并保存的方法
Apr 24 Python
wxPython定时器wx.Timer简单应用实例
Jun 03 Python
Python自动扫雷实现方法
Jul 25 Python
python 写入csv乱码问题解决方法
Oct 23 Python
Django代码性能优化与Pycharm Profile使用详解
Aug 26 Python
PyQt5 窗口切换与自定义对话框的实例
Jun 20 Python
pandas 层次化索引的实现方法
Jul 06 Python
Python进阶之使用selenium爬取淘宝商品信息功能示例
Sep 16 Python
python自动结束mysql慢查询会话的实例代码
Oct 27 Python
使用PyCharm安装pytest及requests的问题
Jul 31 Python
sublime3之内网安装python插件Anaconda的流程
Nov 10 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判断指定时间段的2个方法
2014/03/14 PHP
PHP使用CURL实现对带有验证码的网站进行模拟登录的方法
2014/07/23 PHP
PHP扩展开发入门教程
2015/02/26 PHP
PHP扩展框架之Yaf框架的安装与使用
2016/05/18 PHP
php进行ip地址掩码运算处理的方法
2016/07/11 PHP
详解PHP 二维数组排序保持键名不变
2019/03/06 PHP
PHP数组实际占用内存大小原理解析
2020/12/11 PHP
参考:关于Javascript中实现暂停的几篇文章
2007/03/04 Javascript
再谈IE中Flash控件的自动激活 ObjectWrap
2007/03/09 Javascript
权威JavaScript 中的内存泄露模式
2007/08/13 Javascript
ext监听事件方法[初级篇]
2008/04/27 Javascript
JS判断是否为数字,是否为整数,是否为浮点数的代码
2010/04/24 Javascript
javascript 原型继承介绍
2011/08/30 Javascript
JS加载iFrame出现空白问题的解决办法
2016/05/13 Javascript
JS中使用FormData上传文件、图片的方法
2016/08/07 Javascript
JavaScript实现简单的树形菜单效果
2017/06/23 Javascript
vue中的$emit 与$on父子组件与兄弟组件的之间通信方式
2018/05/13 Javascript
Vue实现base64编码图片间的切换功能
2019/12/04 Javascript
js实现图片实时时钟
2020/01/15 Javascript
解决antd datepicker 获取时间默认少8个小时的问题
2020/10/29 Javascript
[51:06]DOTA2-DPC中国联赛 正赛 Elephant vs Aster BO3 第二场 1月26日
2021/03/11 DOTA
python实现封装得到virustotal扫描结果
2014/10/05 Python
python向已存在的excel中新增表,不覆盖原数据的实例
2018/05/02 Python
Python常用字符串替换函数strip、replace及sub用法示例
2018/05/21 Python
基于python神经卷积网络的人脸识别
2018/05/24 Python
python读取.mat文件的数据及实例代码
2019/07/12 Python
Python读取实时数据流示例
2019/12/02 Python
PyTorch笔记之scatter()函数的使用
2020/02/12 Python
pyqt5中动画的使用详解
2020/04/01 Python
python golang中grpc 使用示例代码详解
2020/06/03 Python
路由表示做什么用的?在linux环境中怎么来配置一条默认路由?
2013/06/07 面试题
教学评估实施方案
2014/03/16 职场文书
化妆品活动策划方案
2014/05/23 职场文书
刑事辩护授权委托书范本
2014/10/17 职场文书
导游词之上海杜莎夫人蜡像馆
2019/11/22 职场文书
python可视化分析绘制带趋势线的散点图和边缘直方图
2022/06/25 Python