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编写生成树状结构的文件目录的脚本的教程
May 04 Python
Python简单生成随机数的方法示例
Mar 31 Python
virtualenv 指定 python 解释器的版本方法
Oct 25 Python
Python3 单行多行万能正则匹配方法
Jan 07 Python
python实现顺时针打印矩阵
Mar 02 Python
用python中的matplotlib绘制方程图像代码
Nov 21 Python
django为Form生成的label标签添加class方式
May 20 Python
python保留格式汇总各部门excel内容的实现思路
Jun 01 Python
pyecharts在数据可视化中的应用详解
Jun 08 Python
keras和tensorflow使用fit_generator 批次训练操作
Jul 03 Python
Python使用socket模块实现简单tcp通信
Aug 18 Python
在Python中如何使用yield
Jun 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实现多级树型菜单
2006/10/09 PHP
php在windows环境下获得cpu内存实时使用率(推荐)
2018/02/08 PHP
PHP 爬取网页的主要方法
2018/07/13 PHP
pjblog中的UBBCode.js
2007/04/25 Javascript
使一个函数作为另外一个函数的参数来运行的javascript代码
2007/08/13 Javascript
javascript不同页面传值的改进版
2008/09/30 Javascript
javascript中取前n天日期的两种方法分享
2014/01/26 Javascript
JavaScript判断是否为数组的3种方法及效率比较
2015/04/01 Javascript
AngularJS基础知识笔记之表格
2015/05/10 Javascript
JavaScript里实用的原生API汇总
2015/05/14 Javascript
jQuery的position()方法详解
2015/07/19 Javascript
js实现网页多级级联菜单代码
2015/08/20 Javascript
Eclipse引入jquery报错如何解决
2015/12/01 Javascript
开启BootStrap学习之旅
2016/05/04 Javascript
JS实现的文字间歇循环滚动效果完整示例
2018/02/13 Javascript
vue中使用protobuf的过程记录
2018/10/26 Javascript
python开启多个子进程并行运行的方法
2015/04/18 Python
python web.py开发httpserver解决跨域问题实例解析
2018/02/12 Python
python字典快速保存于读取的方法
2018/03/23 Python
python 自动重连wifi windows的方法
2018/12/18 Python
python开发之anaconda以及win7下安装gensim的方法
2019/07/05 Python
python实现俄罗斯方块游戏(改进版)
2020/03/13 Python
Python 实现一行输入多个数字(用空格隔开)
2020/04/29 Python
Django model.py表单设置默认值允许为空的操作
2020/05/19 Python
Python3爬虫带上cookie的实例代码
2020/07/28 Python
python 贪心算法的实现
2020/09/18 Python
浅谈HTML5中dialog元素尝鲜
2018/10/15 HTML / CSS
Foot Locker英国官网:美国知名运动产品零售商
2019/02/21 全球购物
商务日语毕业生自荐信范文
2013/11/14 职场文书
魅力教师事迹材料
2014/01/10 职场文书
学生会部长竞聘书
2014/03/31 职场文书
社团活动总结怎么写
2014/06/30 职场文书
党员个人总结范文
2015/02/14 职场文书
施工安全员岗位职责
2015/04/11 职场文书
演讲稿之开卷有益
2019/08/07 职场文书
画错魏国疆域啦!《派对咖孔明》动画因作画失误于官网致歉
2022/04/07 日漫