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 zip文件 压缩
Dec 24 Python
Python随机生成带特殊字符的密码
Mar 02 Python
多版本Python共存的配置方法
May 22 Python
Python字典操作详细介绍及字典内建方法分享
Jan 04 Python
Python基于OpenCV实现视频的人脸检测
Jan 23 Python
Django自定义manage命令实例代码
Feb 11 Python
在Python中输入一个以空格为间隔的数组方法
Nov 13 Python
pygame游戏之旅 添加键盘按键的方法
Nov 20 Python
pandas使用apply多列生成一列数据的实例
Nov 28 Python
基于django channel实现websocket的聊天室的方法示例
Apr 11 Python
Python批量将图片灰度化的实现代码
Apr 11 Python
基于python实现生成指定大小txt文档
Jul 20 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
POSIX 风格和兼容 Perl 风格两种正则表达式主要函数的类比(preg_match, preg_replace, ereg, ereg_replace)
2010/10/12 PHP
又一个PHP实现的冒泡排序算法分享
2014/08/21 PHP
PHP表单验证内容是否为空的实现代码
2016/11/14 PHP
php 多个变量指向同一个引用($b = &$a)用法分析
2019/11/13 PHP
摘自启点的main.js
2008/04/20 Javascript
asp.net+js 实现无刷新上传解析csv文件的代码
2010/05/17 Javascript
javascript中substr,substring,slice.splice的区别说明
2010/11/25 Javascript
项目中常用的JS方法整理
2015/01/30 Javascript
jquery实现的代替传统checkbox样式插件
2015/06/19 Javascript
js获取新浪天气接口的实现代码
2016/06/06 Javascript
jQuery的ajax下载blob文件
2016/07/21 Javascript
Angularjs 设置全局变量的方法总结
2016/10/20 Javascript
最常见的左侧分类菜单栏jQuery实现代码
2016/11/28 Javascript
js模拟支付宝密码输入框
2017/04/11 Javascript
Webpack中publicPath路径问题详解
2018/05/03 Javascript
JavaScript利用键盘码控制div移动
2020/03/19 Javascript
Vue插槽_特殊特性slot,slot-scope与指令v-slot说明
2020/09/04 Javascript
[51:34]Ti4主赛事胜者组 DK vs EG 2
2014/07/19 DOTA
[58:09]Spirit vs NB Supermajor小组赛 A组败者组决赛 BO3 第三场 6.2
2018/06/03 DOTA
正确理解python中的关键字“with”与上下文管理器
2017/04/21 Python
用 Python 连接 MySQL 的几种方式详解
2018/04/04 Python
Tensorflow使用支持向量机拟合线性回归
2018/09/07 Python
运用PyTorch动手搭建一个共享单车预测器
2019/08/06 Python
Python使用APScheduler实现定时任务过程解析
2019/09/11 Python
在python shell中运行python文件的实现
2019/12/21 Python
Python实现井字棋小游戏
2020/03/09 Python
利用css3 translate完美实现表头固定效果
2017/02/28 HTML / CSS
Prototype是怎么扩展DOM的
2014/10/01 面试题
一道输出判断型Java面试题
2014/10/01 面试题
教师自我评价范文
2013/12/16 职场文书
大学生个人事迹材料
2014/01/21 职场文书
大学班级干部的自我评价分享
2014/02/10 职场文书
师德师风个人自我剖析材料
2014/09/27 职场文书
证婚人婚礼致辞
2015/07/28 职场文书
java设计模式--原型模式详解
2021/07/21 Java/Android
python实现会员管理系统
2022/03/18 Python