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 相关文章推荐
深入探究Django中的Session与Cookie
Jul 30 Python
TensorFlow搭建神经网络最佳实践
Mar 09 Python
Python for循环中的陷阱详解
Jul 13 Python
使用selenium模拟登录解决滑块验证问题的实现
May 10 Python
python实现动态数组的示例代码
Jul 15 Python
Django 开发环境与生产环境的区分详解
Jul 26 Python
python+rsync精确同步指定格式文件
Aug 29 Python
PYTHON实现SIGN签名的过程解析
Oct 28 Python
python Canny边缘检测算法的实现
Apr 24 Python
python如何调用java类
Jul 05 Python
Python3.8安装Pygame教程步骤详解
Aug 14 Python
Python中 range | np.arange | np.linspace三者的区别
Mar 22 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
亚洲咖啡有什么?亚洲咖啡产地介绍 亚洲咖啡有什么特点?
2021/03/05 新手入门
js下函数般调用正则的方法附代码
2008/06/22 PHP
ThinkPHP3.1之D方法实例详解
2014/06/20 PHP
一款简单实用的php操作mysql数据库类
2014/12/08 PHP
PHP解压tar.gz格式文件的方法
2016/02/14 PHP
超强多功能php绿色集成环境详解
2017/01/25 PHP
PHP实现登陆并抓取微信列表中最新一组微信消息的方法
2017/07/10 PHP
jQuery温习篇 强大的JQuery选择器
2010/04/24 Javascript
常见JS效果之图片减速度滚动实现代码
2011/12/08 Javascript
js自执行函数的几种不同写法的比较
2012/08/16 Javascript
javascript自定义startWith()和endWith()的两种方法
2013/11/11 Javascript
JQuery实现图片轮播效果
2015/09/15 Javascript
javascript实现dom元素可拖动
2016/03/21 Javascript
详解基于Angular4+ server render(服务端渲染)开发教程
2017/08/28 Javascript
Django与Vue语法的冲突问题完美解决方法
2017/12/14 Javascript
vue axios登录请求拦截器
2018/04/02 Javascript
vue better scroll 无法滚动的解决方法
2018/06/07 Javascript
浅谈微信小程序之官方UI框架we-ui使用教程
2018/08/20 Javascript
python使用reportlab画图示例(含中文汉字)
2013/12/03 Python
浅述python中深浅拷贝原理
2018/09/18 Python
修改python plot折线图的坐标轴刻度方法
2018/12/13 Python
python 通过麦克风录音 生成wav文件的方法
2019/01/09 Python
python pandas库的安装和创建
2019/01/10 Python
Python3.7+tkinter实现查询界面功能
2019/12/24 Python
pytorch加载语音类自定义数据集的方法教程
2020/11/10 Python
python爬虫今日热榜数据到txt文件的源码
2021/02/23 Python
实例教程 HTML5 Canvas 超炫酷烟花绽放动画实现代码
2014/11/05 HTML / CSS
彪马西班牙官网:PUMA西班牙
2019/06/18 全球购物
瑞典多品牌连锁店:Johnells
2021/01/13 全球购物
房地产广告策划方案
2014/05/15 职场文书
一份没有按时交货失信于客户的检讨书
2014/09/19 职场文书
2014年教师业务工作总结
2014/12/19 职场文书
爱国主义教育基地观后感
2015/06/18 职场文书
2015大学生暑期实习报告
2015/07/13 职场文书
2016年春季运动会加油稿
2015/07/22 职场文书
2016年社区综治宣传月活动总结
2016/03/16 职场文书