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之玩转字符串(2)
Sep 14 Python
零基础写python爬虫之爬虫的定义及URL构成
Nov 04 Python
python抓取最新博客内容并生成Rss
May 17 Python
利用numpy+matplotlib绘图的基本操作教程
May 03 Python
python编程之requests在网络请求中添加cookies参数方法详解
Oct 25 Python
python修改list中所有元素类型的三种方法
Apr 09 Python
从运行效率与开发效率比较Python和C++
Dec 14 Python
python中@property和property函数常见使用方法示例
Oct 21 Python
Python Flask框架实现简单加法工具过程解析
Jun 03 Python
Pycharm 2020.1 版配置优化的详细教程
Aug 07 Python
在终端启动Python时报错的解决方案
Nov 20 Python
Django使用echarts进行可视化展示的实践
Jun 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下实现伪 url 的超简单方法[转]
2007/09/24 PHP
在PHP中使用模板的方法
2008/05/24 PHP
PHP下escape解码函数的实现方法
2010/08/08 PHP
解析smarty模板中类似for的功能实现
2013/06/18 PHP
PHP操作文件的一些基本函数使用示例
2014/11/18 PHP
详解WordPress中用于合成数组的wp_parse_args()函数
2015/12/18 PHP
PHP十六进制颜色随机生成器功能示例
2017/07/24 PHP
对于Laravel 5.5核心架构的深入理解
2018/02/22 PHP
laravel 解决crontab不执行的问题
2019/10/22 PHP
js 与或运算符 || && 妙用
2009/12/09 Javascript
改善用户体验的五款jQuery插件分享
2011/05/22 Javascript
本地图片预览(支持IE6/IE7/IE8/Firefox3)经验总结
2013/03/25 Javascript
jQuery判断checkbox是否选中的小例子
2013/12/02 Javascript
javascript中不提供sleep功能如何实现这个功能
2014/05/27 Javascript
javascript新闻跑马灯实例代码
2020/07/29 Javascript
vue2.0结合DataTable插件实现表格动态刷新的方法详解
2017/03/17 Javascript
几种响应式文字详解
2017/05/19 Javascript
微信小程序图片自适应支持多图实例详解
2017/06/21 Javascript
微信小程序使用蓝牙小插件
2019/09/23 Javascript
简单了解Vue computed属性及watch区别
2020/07/10 Javascript
Vue-cli4 配置 element-ui 按需引入操作
2020/09/11 Javascript
JS+CSS实现动态时钟
2021/02/19 Javascript
python解决Fedora解压zip时中文乱码的方法
2016/09/18 Python
python实现根据文件关键字进行切分为多个文件的示例
2018/12/10 Python
Python的log日志功能及设置方法
2019/07/11 Python
django用户登录验证的完整示例代码
2019/07/21 Python
使用Python和OpenCV检测图像中的物体并将物体裁剪下来
2019/10/30 Python
Python3运算符常见用法分析
2020/02/14 Python
解决Jupyter因卸载重装导致的问题修复
2020/04/10 Python
在jupyter notebook中调用.ipynb文件方式
2020/04/14 Python
吃透移动端 Html5 响应式布局
2019/12/16 HTML / CSS
精彩的推荐信范文
2013/11/26 职场文书
大学生实习思想汇报
2014/01/12 职场文书
自主招生自荐信范文
2015/03/04 职场文书
GoLang中生成UUID唯一标识的实现
2021/05/08 Golang
Python 读取千万级数据自动写入 MySQL 数据库
2022/06/28 Python