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 命令行非阻塞输入的小例子
Sep 27 Python
Python基于twisted实现简单的web服务器
Sep 29 Python
Python实现获取网站PR及百度权重
Jan 21 Python
python学习之第三方包安装方法(两种方法)
Jul 30 Python
Django 前后台的数据传递的方法
Aug 08 Python
python更改已存在excel文件的方法
May 03 Python
Python 修改列表中的元素方法
Jun 26 Python
详解python数据结构和算法
Apr 18 Python
python GUI库图形界面开发之PyQt5动态加载QSS样式文件
Feb 25 Python
Win 10下Anaconda虚拟环境的教程
May 18 Python
opencv 阈值分割的具体使用
Jul 08 Python
python利用os模块编写文件复制功能——copy()函数用法
Jul 13 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
使用MaxMind 根据IP地址对访问者定位
2006/10/09 PHP
PHP中的正规表达式(一)
2006/10/09 PHP
实现获取http内容的php函数分享
2014/02/16 PHP
php获取数据库结果集方法(推荐)
2017/06/01 PHP
PHP读取CSV大文件导入数据库的实例
2017/07/24 PHP
JS DOM 操作实现代码
2010/08/01 Javascript
js前台判断开始时间是否小于结束时间
2012/02/23 Javascript
JS清除选择内容的方法
2015/01/29 Javascript
javascript 实现map集合
2015/04/03 Javascript
jQuery+canvas实现简单的球体斜抛及颜色动态变换效果
2016/01/28 Javascript
Javascript实现跑马灯效果的简单实例
2016/05/31 Javascript
BootStrap创建响应式导航条实例代码
2016/05/31 Javascript
js实现不提示直接关闭网页窗口
2017/03/30 Javascript
详解angular用$sce服务来过滤HTML标签
2017/04/11 Javascript
Javascript刷新页面的实例
2017/09/23 Javascript
快速了解vue-cli 3.0 新特性
2018/02/28 Javascript
微信小程序实现banner图轮播效果
2020/06/28 Javascript
Vue传参一箩筐(页面、组件)
2019/04/04 Javascript
Vue项目配置跨域访问和代理proxy设置方式
2020/09/08 Javascript
JS中多层次排序算法的实现代码
2021/01/06 Javascript
[01:07:19]2018DOTA2亚洲邀请赛 4.5 淘汰赛 Mineski vs VG 第一场
2018/04/06 DOTA
[40:55]Liquid vs LGD 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python中用pycurl监控http响应时间脚本分享
2015/02/02 Python
Python中常见的数据类型小结
2015/08/29 Python
python用reduce和map把字符串转为数字的方法
2016/12/19 Python
python实现图书馆研习室自动预约功能
2018/04/27 Python
Python基于Floyd算法求解最短路径距离问题实例详解
2018/05/16 Python
Django使用模板后无法找到静态资源文件问题解决
2019/07/19 Python
Django 开发调试工具 Django-debug-toolbar使用详解
2019/07/23 Python
解决Python3下map函数的显示问题
2019/12/04 Python
opencv python 图片读取与显示图片窗口未响应问题的解决
2020/04/24 Python
Madewell美德威尔美国官网:美国休闲服饰品牌
2016/11/25 全球购物
大学生英语演讲稿
2014/04/24 职场文书
鼓舞士气的口号
2014/06/16 职场文书
物理课外活动总结
2014/08/27 职场文书
简单了解 MySQL 中相关的锁
2021/05/25 MySQL