Python进程间通信multiprocess代码实例


Posted in Python onMarch 18, 2020

仔细说来,multiprocess不是一个模块而是python中一个操作、管理进程的包。 之所以叫multi是取自multiple的多功能的意思,在这个包中几乎包含了和进程有关的所有子模块。由于提供的子模块非常多,为了方便大家归类记忆,我将这部分大致分为四个部分:创建进程部分,进程同步部分,进程池部分,进程之间数据共享。重点强调:进程没有任何共享状态,进程修改的数据,改动仅限于该进程内,但是通过一些特殊的方法,可以实现进程之间数据的共享。

有了之前多线程使用以及线程间queue的基础,多进程以及进程间通信就很好理解了,下面是多进程基本语法以及进程间通信简单示例

#多进程基本语法
import multiprocessing, time, os

def process_test():
  time.sleep(3)
  print("my multiprocessing test")
  print("my pprocess id is",os.getppid())
  print("my process id is",os.getpid())

if __name__ == '__main__': #多线程必须写在if __name__后面,为什么???
  process = multiprocessing.Process(target=process_test) #启动子进程
  process.start()

#多进程间数据通信,多进程的queue实际上是python将一个queue序列化后再反序列化给其它进程
#定义一个函数,第一个形参传递一个进程queue
def m_queue_test(Queue, name):
  Queue.put(("multiprocess queue test",name)) #put一次只能传递一个数据对象,多个对象必须使用列表 元组 字典等传递

if __name__ == '__main__':
  q = multiprocessing.Queue() #主进程实例化一个进程queue
  process2 = multiprocessing.Process(target=m_queue_test, args=(q, "zsq")) #将q传递给子进程,由子进程往里面传递数据
  process2.start()
  print(q.get())#主进程从queue里面读数据

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
用Python制作简单的钢琴程序的教程
Apr 01 Python
Python的Flask框架中web表单的教程
Apr 20 Python
全面理解Python中self的用法
Jun 04 Python
python版本坑:md5例子(python2与python3中md5区别)
Jun 20 Python
virtualenv实现多个版本Python共存
Aug 21 Python
numpy中矩阵合并的实例
Jun 15 Python
Python之list对应元素求和的方法
Jun 28 Python
pandas分别写入excel的不同sheet方法
Dec 11 Python
python实现集中式的病毒扫描功能详解
Jul 09 Python
Python中__repr__和__str__区别详解
Nov 07 Python
Selenium使用Chrome模拟手机浏览器方法解析
Apr 10 Python
Python classmethod装饰器原理及用法解析
Oct 17 Python
python实现超级玛丽游戏
Mar 18 #Python
python实现超级马里奥
Mar 18 #Python
Python开发企业微信机器人每天定时发消息实例
Mar 17 #Python
10个python3常用排序算法详细说明与实例(快速排序,冒泡排序,桶排序,基数排序,堆排序,希尔排序,归并排序,计数排序)
Mar 17 #Python
Python Selenium安装及环境配置的实现
Mar 17 #Python
详解python环境安装selenium和手动下载安装selenium的方法
Mar 17 #Python
使用Python+selenium实现第一个自动化测试脚本
Mar 17 #Python
You might like
一个多文件上传的例子(原创)
2006/10/09 PHP
php实现汉字验证码和算式验证码的方法
2015/03/07 PHP
Prototype Function对象 学习
2009/07/12 Javascript
JavaScript 学习笔记(十一)
2010/01/19 Javascript
jQuery 开发者应该注意的9个错误
2012/05/03 Javascript
js动画(animate)简单引擎代码示例
2012/12/04 Javascript
JS HTML5 音乐天气播放器(Ajax获取天气信息)
2013/05/26 Javascript
玩转方法:call和apply
2014/05/08 Javascript
JS简单计算器实例
2015/01/20 Javascript
JavaScript给url网址进行encode编码的方法
2015/03/18 Javascript
JavaScript实现广告弹窗效果
2016/08/09 Javascript
JS区分Object与Aarry的六种方法总结
2017/02/27 Javascript
BootStrap 导航条实例代码
2017/05/18 Javascript
JavaScript实现重力下落与弹性效果的方法分析
2017/12/20 Javascript
vue实现网络图片瀑布流 + 下拉刷新 + 上拉加载更多(步骤详解)
2020/01/14 Javascript
浅析Python中元祖、列表和字典的区别
2016/08/17 Python
Python实现的简单线性回归算法实例分析
2018/12/26 Python
pycharm编写spark程序,导入pyspark包的3中实现方法
2019/08/02 Python
python将邻接矩阵输出成图的实现
2019/11/21 Python
pytorch+lstm实现的pos示例
2020/01/14 Python
Python+Kepler.gl轻松制作酷炫路径动画的实现示例
2020/06/02 Python
keras实现theano和tensorflow训练的模型相互转换
2020/06/19 Python
Python3爬虫关于代理池的维护详解
2020/07/30 Python
css3简单练习实现遨游浏览器logo的绘制
2013/01/30 HTML / CSS
CSS3制作圆形滚动进度条动画的示例
2020/11/05 HTML / CSS
附答案的Java面试题
2012/11/19 面试题
产品包装策划方案
2014/05/18 职场文书
党旗在我心中演讲稿
2014/09/15 职场文书
2014年班务工作总结
2014/12/02 职场文书
2014年内部审计工作总结
2014/12/09 职场文书
装饰施工员岗位职责
2015/04/11 职场文书
党员观看《筑梦中国》心得体会
2016/01/18 职场文书
为什么你写的height:100%不起作用
2021/05/10 HTML / CSS
Python数据结构之队列详解
2022/03/21 Python
Python&Matlab实现樱花的绘制
2022/04/07 Python
MySQL 逻辑备份 into outfile
2022/05/15 MySQL