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基础教程之Hello World!
Aug 29 Python
Python的GUI框架PySide的安装配置教程
Feb 16 Python
解决phantomjs截图失败,phantom.exit位置的问题
May 17 Python
python生成lmdb格式的文件实例
Nov 08 Python
Python unittest 简单实现参数化的方法
Nov 30 Python
python3爬虫怎样构建请求header
Dec 23 Python
简单的Python调度器Schedule详解
Aug 30 Python
python实现复制大量文件功能
Aug 31 Python
Python使用py2neo操作图数据库neo4j的方法详解
Jan 13 Python
python转化excel数字日期为标准日期操作
Jul 14 Python
python使用pymysql模块操作MySQL
Jun 16 Python
python中mongodb包操作数据库
Apr 19 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中foreach语句控制数组循环的用法
2015/11/30 PHP
PHP实现163邮箱自动发送邮件
2016/03/29 PHP
如何使用php等比例缩放图片
2016/10/12 PHP
使用PHPUnit进行单元测试并生成代码覆盖率报告的方法
2019/03/08 PHP
js兼容标准的表格变色效果
2008/06/28 Javascript
JavaScript学习笔记(十)
2010/01/17 Javascript
JQuery为textarea添加maxlength属性的代码
2010/04/07 Javascript
用js写了一个类似php的print_r输出换行功能
2013/02/18 Javascript
JQUERY简单按钮轮换选中效果实现方法
2015/05/07 Javascript
jQuery实现的网页竖向菜单效果代码
2015/08/26 Javascript
基于javascript实现样式清新图片轮播特效
2016/03/30 Javascript
浅谈JSON.stringify()和JOSN.parse()方法的不同
2016/08/29 Javascript
jQuery实现的上传图片本地预览效果简单示例
2018/03/29 jQuery
Vue 动态设置路由参数的案例分析
2018/04/24 Javascript
nodejs微信开发之授权登录+获取用户信息
2019/03/17 NodeJs
vue路由对不同界面进行传参及跳转的总结
2019/04/20 Javascript
快速对接payjq的个人微信支付接口过程解析
2019/08/15 Javascript
在vue中实现禁止屏幕滚动,禁止屏幕滑动
2020/07/22 Javascript
对vuex中store和$store的区别说明
2020/07/24 Javascript
python使用datetime模块计算各种时间间隔的方法
2015/03/24 Python
python查询sqlite数据表的方法
2015/05/08 Python
Python中getpass模块无回显输入源码解析
2018/01/11 Python
Python实现简单的文本相似度分析操作详解
2018/06/16 Python
python flask实现分页的示例代码
2018/08/02 Python
python 实现一次性在文件中写入多行的方法
2019/01/28 Python
简单分析python的类变量、实例变量
2019/08/23 Python
浅谈Python线程的同步互斥与死锁
2020/03/22 Python
不可轻视HTML5!App三年内将被html5顶替彻底消失
2015/11/18 HTML / CSS
html5 canvas绘制矩形和圆形的实例代码
2016/06/16 HTML / CSS
全球速卖通:AliExpress(国际版淘宝)
2017/09/20 全球购物
Etam德国:内衣精品店
2019/08/25 全球购物
不同浏览器创建XMLHttpRequest方法有什么不同
2014/11/17 面试题
质量负责人任命书
2014/06/06 职场文书
关于拾金不昧的感谢信
2015/01/21 职场文书
MySQL 服务和数据库管理
2021/11/11 MySQL
nginx配置限速限流基于内置模块
2022/05/02 Servers