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 相关文章推荐
python3图片转换二进制存入mysql
Dec 06 Python
Python中的模块和包概念介绍
Apr 13 Python
flask中使用蓝图将路由分开写在不同文件实例解析
Jan 19 Python
python实现朴素贝叶斯分类器
Mar 28 Python
Python 实现选择排序的算法步骤
Apr 22 Python
python 爬虫一键爬取 淘宝天猫宝贝页面主图颜色图和详情图的教程
May 22 Python
浅谈python写入大量文件的问题
Nov 09 Python
Python 串口读写的实现方法
Jun 12 Python
Django中的cookie和session
Aug 27 Python
Python使用pymysql模块操作mysql增删改查实例分析
Dec 19 Python
python字典和json.dumps()的遇到的坑分析
Mar 11 Python
如何在python中执行另一个py文件
Apr 30 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
跟我学Laravel之路由
2014/10/15 PHP
php合并数组中相同元素的方法
2014/11/13 PHP
详解PHP的Yii框架中组件行为的属性注入和方法注入
2016/03/18 PHP
关于laravel 子查询 & join的使用
2019/10/16 PHP
ext jquery 简单比较
2010/04/07 Javascript
NodeJS框架Express的模板视图机制分析
2011/07/19 NodeJs
跟我学Nodejs(一)--- Node.js简介及安装开发环境
2014/05/20 NodeJs
js父页面与子页面不同时显示的方法
2014/10/16 Javascript
js实现跟随鼠标移动且带关闭功能的图片广告实例
2015/02/26 Javascript
使用JavaScript刷新网页的方法
2015/06/04 Javascript
微信小程序实现实时圆形进度条的方法示例
2017/02/24 Javascript
package.json文件配置详解
2017/06/15 Javascript
Angularjs在360兼容模式下取数据缓存问题的解决办法
2017/06/22 Javascript
微信小程序之数据缓存的实例详解
2017/09/29 Javascript
Node.js创建Web、TCP服务器
2017/12/05 Javascript
mpvue跳转页面及注意事项
2018/08/03 Javascript
浅谈React Event实现原理
2018/09/20 Javascript
记一次用vue做的活动页的方法步骤
2019/04/11 Javascript
vue按需加载实例详解
2019/09/06 Javascript
vue v-for出来的列表,点击某个li使得当前被点击的li字体变红操作
2020/07/17 Javascript
Python 网络编程起步(Socket发送消息)
2008/09/06 Python
本地文件上传到七牛云服务器示例(七牛云存储)
2014/01/11 Python
python实现数值积分的Simpson方法实例分析
2015/06/05 Python
Python读取键盘输入的2种方法
2015/06/16 Python
解决Python运行文件出现out of memory框的问题
2018/12/03 Python
如何用C代码给Python写扩展库(Cython)
2019/05/17 Python
python标准库os库的函数介绍
2020/02/12 Python
关于Django Models CharField 参数说明
2020/03/31 Python
CSS3 滤镜 webkit-filter详细介绍及使用方法
2012/12/27 HTML / CSS
美国木工工具和用品商店:Woodcraft
2019/10/30 全球购物
Linux中如何用命令创建目录
2015/01/12 面试题
装修五一活动策划案
2014/01/23 职场文书
舞蹈毕业生的自我评价
2014/03/05 职场文书
职业道德模范事迹材料
2014/08/24 职场文书
Python pandas之求和运算和非空值个数统计
2021/08/07 Python
python实现简单石头剪刀布游戏
2021/10/24 Python