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的几条建议分享
Feb 10 Python
python抓取网页内容示例分享
Feb 24 Python
用Python实现一个简单的能够上传下载的HTTP服务器
May 05 Python
Python3控制路由器——使用requests重启极路由.py
May 11 Python
Python之ReportLab绘制条形码和二维码的实例
Jan 15 Python
python web基础之加载静态文件实例
Mar 20 Python
教你使用python实现微信每天给女朋友说晚安
Mar 23 Python
解决Python正则表达式匹配反斜杠''\''问题
Jul 17 Python
windows、linux下打包Python3程序详细方法
Mar 17 Python
用sleep间隔进行python反爬虫的实例讲解
Nov 30 Python
解决pycharm不能自动保存在远程linux中的问题
Feb 06 Python
Matplotlib animation模块实现动态图
Feb 25 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 分页类 扩展代码
2009/06/11 PHP
php 无法加载mcrypt.dll的解决办法
2013/04/03 PHP
php截取中文字符串不乱码的方法
2013/12/25 PHP
IE Firefox 使用自定义标签的区别
2009/10/15 Javascript
JavaScript静态类型检查工具FLOW简介
2015/01/06 Javascript
javascript实现全角与半角字符的转换
2015/01/07 Javascript
js定义类的几种方法(推荐)
2016/06/08 Javascript
Vuejs第十一篇组件之slot内容分发实例详解
2016/09/09 Javascript
在vue项目中使用element-ui的Upload上传组件的示例
2018/02/08 Javascript
JavaScript实现图片懒加载的方法分析
2018/07/05 Javascript
vue.js绑定事件监听器示例【基于v-on事件绑定】
2018/07/07 Javascript
原生JavaScript实现remove()和recover()功能示例
2018/07/24 Javascript
JavaScript实现数组全排列、去重及求最大值算法示例
2018/07/30 Javascript
详解JS浏览器事件循环机制
2019/03/27 Javascript
在vue中使用jsx语法的使用方法
2019/09/30 Javascript
JS造成内存泄漏的几种情况实例分析
2020/03/02 Javascript
JavaScript鼠标悬停事件用法解析
2020/05/15 Javascript
arcgis.js控制地图地体的显示范围超出区域自动弹回(实现思路)
2021/01/28 Javascript
跟老齐学Python之通过Python连接数据库
2014/10/28 Python
Python3.7实现中控考勤机自动连接
2018/08/28 Python
解决python selenium3启动不了firefox的问题
2018/10/13 Python
浅谈python的输入输出,注释,基本数据类型
2019/04/02 Python
Python OpenCV实现鼠标画框效果
2020/08/19 Python
详解Python time库的使用
2019/10/10 Python
python pptx复制指定页的ppt教程
2020/02/14 Python
HTML5 WebGL 实现民航客机飞行监控系统
2019/07/25 HTML / CSS
应届生求职信写作技巧
2013/10/24 职场文书
创先争优活动方案
2014/02/12 职场文书
软件毕业生个人鉴定
2014/03/03 职场文书
文明村创建实施方案
2014/03/27 职场文书
经销商年会策划方案
2014/05/29 职场文书
个人政风行风自查自纠报告
2014/10/21 职场文书
2015年社区综治宣传月活动总结
2015/03/25 职场文书
2015年学校精神文明工作总结
2015/05/27 职场文书
2015初中团支部工作总结
2015/07/21 职场文书
TV动画《政宗君的复仇》第二季制作决定PV公布
2022/04/02 日漫