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之模拟鼠标键盘动作具体实现
Dec 30 Python
Using Django with GAE Python 后台抓取多个网站的页面全文
Feb 17 Python
使用Python对SQLite数据库操作
Apr 06 Python
Django框架模板介绍
Jan 15 Python
python实现淘宝秒杀脚本
Jun 23 Python
详解Python sys.argv使用方法
May 10 Python
Django model 中设置联合约束和联合索引的方法
Aug 06 Python
详解Python利用random生成一个列表内的随机数
Aug 21 Python
Python3.7 pyodbc完美配置访问access数据库
Oct 03 Python
使用matlab或python将txt文件转为excel表格
Nov 01 Python
使用 prometheus python 库编写自定义指标的方法(完整代码)
Jun 29 Python
在前女友婚礼上,用Python破解了现场的WIFI还把名称改成了
May 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实现图片缩放功能类
2013/12/18 PHP
php pdo oracle中文乱码的快速解决方法
2016/05/16 PHP
编写自己的jQuery插件简单实现代码
2011/04/19 Javascript
JavaScript初学者应注意的七个细节详细介绍
2012/12/27 Javascript
JavaScript自定义日期格式化函数详细解析
2014/01/14 Javascript
firefox浏览器用jquery.uploadify插件上传时报HTTP 302错误
2015/03/01 Javascript
JS实现网页表格自动变大缩小的方法
2015/03/09 Javascript
JavaScript弹出新窗口并控制窗口移动到指定位置的方法
2015/04/06 Javascript
jquery带翻页动画的电子杂志代码分享
2015/08/21 Javascript
详解JavaScript表单验证(E-mail 验证)
2016/03/31 Javascript
JQuery学习总结【一】
2016/12/01 Javascript
BootStrap实现轮播图效果(收藏)
2016/12/30 Javascript
canvas绘制七巧板
2017/02/03 Javascript
轻松理解JavaScript闭包
2017/03/14 Javascript
关于Vue的路由权限管理的示例代码
2018/03/06 Javascript
详解vue 项目白屏解决方案
2018/10/31 Javascript
Vuex的基本概念、项目搭建以及入坑点
2018/11/04 Javascript
Vue实现图片与文字混输效果
2019/12/04 Javascript
JavaScript 常见的继承方式汇总
2020/09/17 Javascript
[09:22]2014DOTA2西雅图国际邀请赛 主赛事第二日TOPPLAY
2014/07/21 DOTA
用python wxpy管理微信公众号并利用微信获取自己的开源数据
2019/07/30 Python
python3的url编码和解码,自定义gbk、utf-8的例子
2019/08/22 Python
Django vue前后端分离整合过程解析
2020/11/20 Python
python爬取招聘要求等信息实例
2020/11/20 Python
CSS中垂直居中的简单实现方法
2015/07/06 HTML / CSS
6号汽车旅馆预订:Motel 6
2018/02/11 全球购物
绘画设计学生的个人自我评价
2013/09/20 职场文书
学校纪律作风整改措施思想汇报
2014/10/11 职场文书
开票员岗位职责
2015/02/12 职场文书
年中了,该如何写好个人述职报告?
2019/07/02 职场文书
php 解析非标准json、非规范json
2021/04/01 PHP
MySQL为id选择合适的数据类型
2021/06/07 MySQL
微信小程序scroll-view不能左右滑动问题的解决方法
2021/07/09 Javascript
mysql 索引的数据结构为什么要采用B+树
2022/04/26 MySQL
Windows Server 2012 R2 磁盘分区教程
2022/04/29 Servers
Java实现带图形界面的聊天程序
2022/06/10 Java/Android