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学习笔记(推荐查看)
Jun 09 Python
讲解Python中fileno()方法的使用
May 24 Python
Python中的sort()方法使用基础教程
Jan 08 Python
解决python3 Pycharm上连接数据库时报错的问题
Dec 03 Python
Python操作rabbitMQ的示例代码
Mar 19 Python
深入了解和应用Python 装饰器 @decorator
Apr 02 Python
django使用haystack调用Elasticsearch实现索引搜索
Jul 24 Python
解决python 3 urllib 没有 urlencode 属性的问题
Aug 22 Python
如何更改 pandas dataframe 中两列的位置
Dec 27 Python
Python xlrd excel文件操作代码实例
Mar 10 Python
使用Python三角函数公式计算三角形的夹角案例
Apr 15 Python
在Python 中将类对象序列化为JSON
Apr 06 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
构建简单的Webmail系统
2006/10/09 PHP
QueryPath PHP 中的jQuery
2010/04/11 PHP
php中XMLHttpRequest(Ajax)不能设置自定义的Referer的解决方法
2011/11/26 PHP
有关PHP中MVC的开发经验分享
2012/05/17 PHP
基于PHP遍历数组的方法汇总分析
2013/06/08 PHP
PHP生成图像验证码的方法小结(2种方法)
2016/07/18 PHP
php 基础函数
2017/02/10 PHP
win10下 php安装seaslog扩展的详细步骤
2020/12/04 PHP
Jquery提交表单 Form.js官方插件介绍
2012/03/01 Javascript
jQuery控制iFrame(实例代码)
2013/11/19 Javascript
常见的原始JS选择器使用方法总结
2014/04/09 Javascript
浅谈jquery中next与siblings的区别
2016/10/27 Javascript
学习vue.js表单控件绑定操作
2016/12/05 Javascript
详解Vue2 无限级分类(添加,删除,修改)
2017/03/07 Javascript
详解Webpack实战之构建 Electron 应用
2017/12/25 Javascript
Vue中通过Vue.extend动态创建实例的方法
2019/08/13 Javascript
layui 数据表格 根据值(1=业务,2=机构)显示中文名称示例
2019/10/26 Javascript
es6函数之尾递归用法实例分析
2020/04/25 Javascript
解决vant中 tab栏遇到的坑 van-tabs
2020/11/04 Javascript
[01:14]DOTA2亚洲邀请赛 ShowOpen
2015/02/07 DOTA
Python 匹配任意字符(包括换行符)的正则表达式写法
2009/10/29 Python
python ansible服务及剧本编写
2017/12/29 Python
Python二叉树定义与遍历方法实例分析
2018/05/25 Python
python实现机器人卡牌
2019/10/06 Python
最小二乘法及其python实现详解
2020/02/24 Python
python字典按照value排序方法
2020/12/28 Python
纯CSS实现设置半个字符的样式
2014/07/03 HTML / CSS
蔻驰西班牙官网:COACH西班牙
2019/01/16 全球购物
审计主管岗位职责
2014/01/31 职场文书
法制宣传月活动方案
2014/05/11 职场文书
优秀团干部个人事迹
2014/05/29 职场文书
食堂标语大全
2014/06/11 职场文书
中秋晚会策划方案
2014/06/12 职场文书
如何书写邀请函?
2019/06/24 职场文书
Python控制台输出俄罗斯方块的方法实例
2021/04/17 Python
PyTorch的Debug指南
2021/05/07 Python