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 相关文章推荐
wxPython事件驱动实例详解
Sep 28 Python
Python基础教程之正则表达式基本语法以及re模块
Mar 25 Python
Python反转序列的方法实例分析
Mar 21 Python
利用Python将每日一句定时推送至微信的实现方法
Aug 13 Python
Python从数据库读取大量数据批量写入文件的方法
Dec 10 Python
在Django中URL正则表达式匹配的方法
Dec 20 Python
Django 内置权限扩展案例详解
Mar 04 Python
Python matplotlib学习笔记之坐标轴范围
Jun 28 Python
python中的global关键字的使用方法
Aug 20 Python
使用Bazel编译TensorBoard教程
Feb 15 Python
Python基于time模块表示时间常用方法
Jun 18 Python
Python基础 括号()[]{}的详解
Nov 07 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 中include()与require()的对比
2006/10/09 PHP
PHP 高级课程笔记 面向对象
2009/06/21 PHP
用 Composer构建自己的 PHP 框架之基础准备
2014/10/30 PHP
PHP中list()函数用法实例简析
2016/01/08 PHP
PHP实现的文件操作类及文件下载功能示例
2016/12/24 PHP
php与c 实现按行读取文件实例代码
2017/01/03 PHP
PHP获取当前URL路径的处理方法(适用于多条件筛选列表)
2017/02/10 PHP
phpStudy 2016 使用教程详解(支持PHP7)
2017/10/18 PHP
详解PHP中的8个魔术常量
2020/07/06 PHP
基于jquery的拖动布局插件
2011/11/25 Javascript
让jQuery与其他JavaScript库并存避免冲突的方法
2013/12/23 Javascript
JavaScript对IE操作的经典代码(推荐)
2014/03/10 Javascript
javascript去除空格方法小结
2015/05/21 Javascript
js实现拉幕效果的广告代码
2015/09/02 Javascript
json传值以及ajax接收详解
2016/05/24 Javascript
react实现pure render时bind(this)隐患需注意!
2017/03/09 Javascript
借助node实战JSONP跨域实例
2017/03/30 Javascript
怎么使用javascript深度拷贝一个数组
2019/06/06 Javascript
vue使用showdown并实现代码区域高亮的示例代码
2019/10/17 Javascript
Python 可爱的大小写
2008/09/06 Python
理解python多线程(python多线程简明教程)
2014/06/09 Python
12个步骤教你理解Python装饰器
2019/07/01 Python
Python+Pyqt实现简单GUI电子时钟
2021/02/22 Python
Python GUI学习之登录系统界面篇
2019/08/21 Python
Django之使用celery和NGINX生成静态页面实现性能优化
2019/10/08 Python
Python制作简易版小工具之计算天数的实现思路
2020/02/13 Python
PYQT5 vscode联合操作qtdesigner的方法
2020/03/24 Python
Python爬虫中Selenium实现文件上传
2020/12/04 Python
中软Java笔试题
2012/11/11 面试题
小学庆六一活动方案
2014/02/28 职场文书
大学新学期计划书
2014/04/28 职场文书
项目经理任命书
2014/06/04 职场文书
乡领导班子四风问题对照检查材料
2014/09/25 职场文书
全国爱眼日活动总结
2015/02/27 职场文书
关爱留守儿童捐款倡议书
2015/04/27 职场文书
2016年学习贯彻十八届五中全会精神心得体会
2016/01/05 职场文书