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中的startswith和endswith函数使用实例
Aug 25 Python
浅析Python中的序列化存储的方法
Apr 28 Python
Python 使用os.remove删除文件夹时报错的解决方法
Jan 13 Python
python3.5 + PyQt5 +Eric6 实现的一个计算器代码
Mar 11 Python
python sklearn库实现简单逻辑回归的实例代码
Jul 01 Python
Python 生成一个从0到n个数字的列表4种方法小结
Nov 28 Python
Python中私有属性的定义方式
Mar 05 Python
基于Python3.7.1无法导入Numpy的解决方式
Mar 09 Python
python实现将range()函数生成的数字存储在一个列表中
Apr 02 Python
Django DRF认证组件流程实现原理详解
Aug 17 Python
python爬虫利用代理池更换IP的方法步骤
Feb 21 Python
Tensorflow与RNN、双向LSTM等的踩坑记录及解决
May 31 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数学运算
2011/12/30 PHP
php导入模块文件分享
2015/03/17 PHP
javascript 导出数据到Excel(处理table中的元素)
2009/12/18 Javascript
基于jquery的一个图片hover的插件
2010/04/24 Javascript
JS中getYear()和getFullYear()区别分析
2014/07/04 Javascript
JavaScript中用toString()方法返回时间为字符串
2015/06/12 Javascript
jquery ztree实现模糊搜索功能
2016/02/25 Javascript
Java中int与integer的区别(基本数据类型与引用数据类型)
2017/02/19 Javascript
nodejs根据ip数组在百度地图中进行定位
2017/03/06 NodeJs
Bootstrap笔记—折叠实例代码
2017/03/13 Javascript
JavaScript瀑布流布局实现代码
2017/05/06 Javascript
使用Fullpage插件快速开发整屏翻页的页面
2017/09/13 Javascript
利用JS判断客户端类型你应该知道的四种方法
2017/12/22 Javascript
Vue页面骨架屏注入方法
2018/05/13 Javascript
JS面向对象编程基础篇(一) 对象和构造函数实例详解
2020/03/03 Javascript
vue.js实现双击放大预览功能
2020/06/23 Javascript
vue设置全局访问接口API地址操作
2020/08/14 Javascript
vue组件开发之tab切换组件使用详解
2020/08/21 Javascript
JavaScript 绘制饼图的示例
2021/02/19 Javascript
[01:18:45]DOTA2-DPC中国联赛 正赛 DLG vs Dragon BO3 第三场2月1日
2021/03/11 DOTA
Python使用scrapy采集数据时为每个请求随机分配user-agent的方法
2015/04/08 Python
Python2.x版本中maketrans()方法的使用介绍
2015/05/19 Python
各个系统下的Python解释器相关安装方法
2015/10/12 Python
Linux中Python 环境软件包安装步骤
2016/03/31 Python
Python中实现变量赋值传递时的引用和拷贝方法
2018/04/29 Python
使用Python微信库itchat获得好友和群组已撤回的消息
2018/06/24 Python
python+opencv像素的加减和加权操作的实现
2019/07/14 Python
python实现文件的分割与合并
2019/08/29 Python
python如何利用paramiko执行服务器命令
2020/11/07 Python
同学聚会欢迎辞
2014/01/14 职场文书
教师四风问题整改措施
2014/09/25 职场文书
先进员工事迹材料
2014/12/20 职场文书
自我检讨书怎么写
2015/05/07 职场文书
WINDOWS 64位 下安装配置mysql8.0.25最详细的教程
2022/03/22 MySQL
Python实现双向链表基本操作
2022/05/25 Python
win sever 2022如何占用操作主机角色
2022/06/25 Servers