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 相关文章推荐
将Django框架和遗留的Web应用集成的方法
Jul 24 Python
Python中for循环和while循环的基本使用方法
Aug 21 Python
python中通过预先编译正则表达式提高效率
Sep 25 Python
flask中使用蓝图将路由分开写在不同文件实例解析
Jan 19 Python
实例讲解Python爬取网页数据
Jul 08 Python
python 自定义装饰器实例详解
Jul 20 Python
PyCharm License Activation激活码失效问题的解决方法(图文详解)
Mar 12 Python
详解Python中@staticmethod和@classmethod区别及使用示例代码
Dec 14 Python
python 写一个水果忍者游戏
Jan 13 Python
python Scrapy爬虫框架的使用
Jan 21 Python
如何用 Python 制作一个迷宫游戏
Feb 25 Python
Python绘画好看的星空图
Mar 17 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学习笔记 面向对象的构造与析构方法
2011/06/13 PHP
基于python发送邮件的乱码问题的解决办法
2013/04/25 PHP
PHP has encountered a Stack overflow问题解决方法
2014/11/03 PHP
服务器上配置PHP运行环境教程
2015/02/12 PHP
简单谈谈php延迟静态绑定
2016/01/26 PHP
PHP registerXPathNamespace()函数讲解
2019/02/03 PHP
javascript重复绑定事件造成的后果说明
2013/03/02 Javascript
jquery中通过父级查找进行定位示例
2013/06/28 Javascript
推荐10个2014年最佳的jQuery视频插件
2014/11/12 Javascript
JS中frameset框架弹出层实例代码
2016/04/01 Javascript
深入理解Vue-cli搭建项目后的目录结构探秘
2017/07/13 Javascript
webpack 单独打包指定JS文件的方法
2018/02/22 Javascript
JavaScript 中的12种循环遍历方法【总结】
2018/05/31 Javascript
基于vue+uniapp直播项目实现uni-app仿抖音/陌陌直播室功能
2019/11/12 Javascript
JS图片懒加载的优点及实现原理
2020/01/10 Javascript
[02:23]2018DOTA2亚洲邀请赛趣味视频——反应测试
2018/04/04 DOTA
python对象及面向对象技术详解
2016/07/19 Python
Python错误提示:[Errno 24] Too many open files的分析与解决
2017/02/16 Python
pytorch 数据集图片显示方法
2018/07/26 Python
如何利用python web框架做文件流下载的实现示例
2020/06/02 Python
python3.8.3安装教程及环境配置的详细教程(64-bit)
2020/11/28 Python
Surfdome西班牙:世界上最受欢迎的生活方式品牌
2019/02/13 全球购物
台湾良兴购物网:EcLife
2019/12/01 全球购物
西安启天科技有限公司网络工程师面试题笔试题
2016/06/12 面试题
组织关系转移介绍信
2014/01/16 职场文书
会计专业自我评价
2014/02/12 职场文书
投标承诺书怎么写
2014/05/24 职场文书
升学宴演讲稿
2014/09/01 职场文书
财政专业大学生职业生涯规划书
2014/09/17 职场文书
甜品蛋糕店创业计划书
2014/09/21 职场文书
业务员辞职信范文
2015/03/02 职场文书
合同审查法律意见书
2015/06/04 职场文书
工程主管竞聘书
2015/09/15 职场文书
Python干货实战之八音符酱小游戏全过程详解
2021/10/24 Python
微软Win11有哪些隐藏功能? windows11多个功能汇总
2021/11/21 数码科技
如何在python中实现ECDSA你知道吗
2021/11/23 Python