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获得两个数组交集、并集、差集的方法
Mar 27 Python
Python中几种操作字符串的方法的介绍
Apr 09 Python
numpy.random.seed()的使用实例解析
Feb 03 Python
Python使用分布式锁的代码演示示例
Jul 30 Python
kafka-python批量发送数据的实例
Dec 27 Python
python调用并链接MATLAB脚本详解
Jul 05 Python
PyQt5基本控件使用之消息弹出、用户输入、文件对话框的使用方法
Aug 06 Python
Python Web框架之Django框架Form组件用法详解
Aug 16 Python
pygame实现烟雨蒙蒙下彩虹雨
Nov 11 Python
python使用pandas抽样训练数据中某个类别实例
Feb 28 Python
python应用Axes3D绘图(批量梯度下降算法)
Mar 25 Python
Pytorch 解决自定义子Module .cuda() tensor失败的问题
Jun 23 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
《五等分的花嫁》漫画完结!2020年10月第2期TV动画制作组换血!
2020/03/06 日漫
PHP 危险函数解释 分析
2009/04/22 PHP
php 获取SWF动画截图示例代码
2014/02/10 PHP
PHP获取本周第一天和最后一天示例代码
2014/02/24 PHP
thinkphp3.2实现上传图片的控制器方法
2016/04/28 PHP
php将文件夹打包成zip文件的简单实现方法
2016/10/04 PHP
使用phpQuery获取数组的实例
2017/03/13 PHP
Ajax一统天下之Dojo整合篇
2007/03/24 Javascript
CSS+Table图文混排中实现文本自适应图片宽度(超简单+跨所有浏览器)
2009/02/14 Javascript
使用script的src实现跨域和类似ajax效果
2014/11/10 Javascript
详解Javascript动态操作CSS
2014/12/08 Javascript
对JavaScript的全文搜索实现相关度评分的功能的方法
2015/06/24 Javascript
使用struts2+Ajax+jquery验证用户名是否已被注册
2016/03/22 Javascript
bootstrap suggest下拉框使用详解
2017/04/10 Javascript
JS数组实现分类统计实例代码
2018/09/30 Javascript
JavaScript ES6中的简写语法总结与使用技巧
2018/12/30 Javascript
vue组件数据传递、父子组件数据获取,slot,router路由功能示例
2019/03/19 Javascript
小程序云开发之用户注册登录
2019/05/18 Javascript
JS数据类型分类及常用判断方法
2020/11/19 Javascript
Python发送http请求解析返回json的实例
2018/03/26 Python
windows下pycharm安装、创建文件、配置默认模板
2018/07/31 Python
python获取交互式ssh shell的方法
2019/02/14 Python
python小程序实现刷票功能详解
2019/07/17 Python
Django连接数据库并实现读写分离过程解析
2019/11/13 Python
解决pycharm同一目录下无法import其他文件
2020/02/12 Python
如何快速一次性卸载所有python包(第三方库)呢
2020/10/20 Python
雅诗兰黛旗下专业男士保养领导品牌:Lab Series
2017/05/15 全球购物
英国女装网上商店:I Saw It First
2018/10/18 全球购物
应聘收银员个人的求职信
2013/11/30 职场文书
八年级生物教学反思
2014/01/22 职场文书
思想品德自我评价
2014/02/04 职场文书
马智宇婚礼主持词
2014/03/22 职场文书
车贷收入证明范本
2014/09/14 职场文书
CSS 圆形进度栏
2021/04/06 HTML / CSS
如何解决.cuda()加载用时很长的问题
2021/05/24 Python
python通过函数名调用函数的几种方法总结
2021/06/07 Python