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的几种开发工具介绍
Mar 07 Python
tensorflow中next_batch的具体使用
Feb 02 Python
Python 使用with上下文实现计时功能
Mar 09 Python
Python实现的调用C语言函数功能简单实例
Mar 13 Python
解决Django后台ManyToManyField显示成Object的问题
Aug 09 Python
python打造爬虫代理池过程解析
Aug 15 Python
Python字典生成式、集合生成式、生成器用法实例分析
Jan 07 Python
flask 实现上传图片并缩放作为头像的例子
Jan 09 Python
python GUI库图形界面开发之PyQt5中QMainWindow, QWidget以及QDialog的区别和选择
Feb 26 Python
Python实现捕获异常发生的文件和具体行数
Apr 25 Python
Python基于yaml文件配置logging日志过程解析
Jun 23 Python
利用Opencv实现图片的油画特效实例
Feb 28 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
几种有用的变型 PHP中循环语句的用法介绍
2012/01/30 PHP
PHP四大安全策略
2014/03/12 PHP
php读取flash文件高宽帧数背景颜色的方法
2015/01/06 PHP
使用Codeigniter重写insert的方法(推荐)
2017/03/23 PHP
laravel清除视图缓存的代码
2019/10/23 PHP
javascript显示选择目录对话框的代码
2008/11/10 Javascript
关于JavaScript定义类和对象的几种方式
2010/11/09 Javascript
js 判断一个元素是否在页面中存在
2012/12/27 Javascript
javascript中的缓动效果实现程序
2012/12/29 Javascript
jquery 利用show和hidden实现级联菜单示例代码
2013/08/09 Javascript
JS简单的图片放大缩小的两种方法
2013/11/11 Javascript
深入理解javascript构造函数和原型对象
2014/09/23 Javascript
Node.js实用代码段之正确拼接Buffer
2016/03/17 Javascript
AngularJS 模块详解及简单实例
2016/07/28 Javascript
JavaScript原型对象原理与应用分析
2018/12/27 Javascript
服务端预渲染之Nuxt(使用篇)
2019/04/08 Javascript
vue项目中运用webpack动态配置打包多种环境域名的方法
2019/06/24 Javascript
[17:36]VG战队纪录片
2014/08/21 DOTA
py中的目录与文件判别代码
2008/07/16 Python
Python探索之URL Dispatcher实例详解
2017/10/28 Python
Python基于OpenCV实现视频的人脸检测
2018/01/23 Python
python实现百度语音识别api
2018/04/10 Python
Python处理CSV与List的转换方法
2018/04/19 Python
python队列queue模块详解
2018/04/27 Python
python实现爬取百度图片的方法示例
2019/07/06 Python
pandas进行时间数据的转换和计算时间差并提取年月日
2019/07/06 Python
python3的url编码和解码,自定义gbk、utf-8的例子
2019/08/22 Python
Python numpy数组转置与轴变换
2019/11/15 Python
python GUI库图形界面开发之PyQt5打印控件QPrinter详细使用方法与实例
2020/02/28 Python
浅谈sklearn中predict与predict_proba区别
2020/06/28 Python
毕业生造价工程师求职信
2013/10/17 职场文书
大学生文员专业个人求职信范文
2014/01/05 职场文书
高一家长会邀请函
2014/01/12 职场文书
群众路线个人整改措施
2014/10/24 职场文书
宇宙与人观后感
2015/06/05 职场文书
python解析json数据
2022/04/29 Python