python并发编程多进程之守护进程原理解析


Posted in Python onAugust 20, 2019

守护进程

主进程创建子进程目的是:主进程有一个任务需要并发执行,那开启子进程帮我并发执行任务

主进程创建子进程,然后将该进程设置成守护自己的进程

关于守护进程需要强调两点:

其一:守护进程会在主进程代码执行结束后就终止

其二:守护进程内无法再开启子进程,否则抛出异常:AssertionError: daemonic processes are not allowed to have children

如果我们有两个任务需要并发执行,那么开一个主进程和一个子进程分别去执行就ok了,如果子进程的任务在主进程任务结束后,就没有存在的必要了,那么该子进程应该在开启前就被设置成守护进程。主进程代码运行结束,守护进程随即终止

子进程还没来得及开始就挂了

设置了守护进程 就是不给子进程运行

守护进程必须在开启子进程前开启

from multiprocessing import Process
import time
def task(name):
  print("%s is running" % name)
  time.sleep(3)
  print("%s is done" % name)
if __name__ == "__main__":
  t = Process(target=task, args=('子进程1',))
  # 守护进程必须在开启子进程前开启
  t.daemon = True
  t.start()
  print("主")
'''
主
'''

开一个子进程是为了并发任务, 这个子进程的任务,在主进程死了,这个任务就没有意义存在,这个子进程就应该设置守护进程

守护进程练习题

在主进程代码执行完毕,只要出现打印主进程信息,p1就不会执行或者死掉

from multiprocessing import Process
import time
def foo():
  print(123)
  time.sleep(1)
  print("end123")
def bar():
  print(456)
  time.sleep(3)
  print("end456")
if __name__ == '__main__':
  p1=Process(target=foo)
  p2=Process(target=bar)
  p1.daemon=True
  p1.start()
  p2.start()
  print("main-------")  
'''
main-------
end456
'''

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python  __getattr__与__setattr__使用方法
Sep 06 Python
Python开发之快速搭建自动回复微信公众号功能
Apr 22 Python
pyqt5 删除layout中的所有widget方法
Jun 25 Python
python爬虫增加访问量的方法
Aug 22 Python
python操作docx写入内容,并控制文本的字体颜色
Feb 13 Python
Python ckeditor富文本编辑器代码实例解析
Jun 22 Python
python实现学生成绩测评系统
Jun 22 Python
Pycharm2020.1安装中文语言插件的详细教程(不需要汉化)
Aug 07 Python
python字典与json转换的方法总结
Dec 28 Python
Python图像处理之膨胀与腐蚀的操作
Feb 07 Python
python读取excel数据并且画图的实现示例
Feb 08 Python
Python人工智能之混合高斯模型运动目标检测详解分析
Nov 07 Python
python控制台实现tab补全和清屏的例子
Aug 20 #Python
关于python字符串方法分类详解
Aug 20 #Python
python+tkinter实现学生管理系统
Aug 20 #Python
Python对列表的操作知识点详解
Aug 20 #Python
python中的global关键字的使用方法
Aug 20 #Python
python并发编程 Process对象的其他属性方法join方法详解
Aug 20 #Python
浅谈pytorch grad_fn以及权重梯度不更新的问题
Aug 20 #Python
You might like
php+mysql实现无限级分类 | 树型显示分类关系
2006/11/19 PHP
PHP实现删除非站内外部链接实例代码
2014/06/17 PHP
laravel5.2实现区分前后台用户登录的方法
2017/01/11 PHP
原生javascript实现简单的datagrid数据表格
2015/01/02 Javascript
浅谈jQuery中的事件
2015/03/23 Javascript
原生js与jQuery实现简单的tab切换特效对比
2015/07/30 Javascript
js 转json格式的字符串为对象或数组(前后台)的方法
2016/11/02 Javascript
jQuery简易时光轴实现方法示例
2017/03/13 Javascript
vue 组件 全局注册和局部注册的实现
2018/02/28 Javascript
快速解决vue动态绑定多个class的官方实例语法无效的问题
2018/09/05 Javascript
在vue项目中使用Jquery-contextmenu插件的步骤讲解
2019/01/27 jQuery
layui 阻止图片上传的实例(before方法)
2019/09/26 Javascript
JS实现长图上下滚动效果
2020/03/19 Javascript
vue 路由缓存 路由嵌套 路由守卫 监听物理返回操作
2020/08/06 Javascript
基于vue-simple-uploader封装文件分片上传、秒传及断点续传的全局上传插件功能
2021/02/23 Vue.js
[03:49]辉夜杯现场龙骑士COSER秀情商“我喜欢芬队!”
2015/12/27 DOTA
编写Python脚本使得web页面上的代码高亮显示
2015/04/24 Python
Python实现获取邮箱内容并解析的方法示例
2018/06/16 Python
Python转换时间的图文方法
2019/07/01 Python
在macOS上搭建python环境的实现方法
2019/08/13 Python
树莓派安装OpenCV3完整过程的实现
2019/10/10 Python
Python 面向对象之封装、继承、多态操作实例分析
2019/11/21 Python
python集成开发环境配置(pycharm)
2020/02/14 Python
pycharm配置QtDesigner的超详细方法
2021/01/25 Python
CSS3实现王者荣耀匹配人员加载页面的方法
2019/04/16 HTML / CSS
美国顶级水上运动专业店:Marine Products
2018/04/15 全球购物
即时搜索数百万张门票:SeatsForEveryone.com
2018/08/26 全球购物
塑料制成的可水洗的编织平底鞋和鞋子:Rothy’s
2018/09/16 全球购物
英国名牌男装店:Standout
2021/02/17 全球购物
工程部主管岗位职责
2013/11/17 职场文书
护士自我鉴定怎么写
2014/02/07 职场文书
《她是我的朋友》教学反思
2014/04/26 职场文书
整改报告怎么写
2014/11/06 职场文书
志愿者个人总结
2015/03/03 职场文书
党支部审查意见
2015/06/02 职场文书
《家》读后感:万惜拯救,冷暖自知
2019/09/25 职场文书