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 字符串操作方法大全
Mar 11 Python
python中列表和元组的区别
Dec 18 Python
对python周期性定时器的示例详解
Feb 19 Python
django 基于中间件实现限制ip频繁访问过程详解
Jul 30 Python
Django项目之Elasticsearch搜索引擎的实例
Aug 21 Python
Python日志logging模块功能与用法详解
Apr 09 Python
Pyinstaller 打包发布经验总结
Jun 02 Python
python如何从键盘获取输入实例
Jun 18 Python
基于python实现操作git过程代码解析
Jul 27 Python
Python如何获取文件路径/目录
Sep 22 Python
python uuid生成唯一id或str的最简单案例
Jan 13 Python
Python IO文件管理的具体使用
Mar 20 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/22 PHP
php explode函数实例代码
2012/02/27 PHP
PHP Global变量定义当前页面的全局变量实现探讨
2013/06/05 PHP
ThinkPHP分页实例
2014/10/15 PHP
PHP中的一些常用函数收集
2015/05/26 PHP
PHP中ltrim与rtrim去除左右空格及特殊字符实例
2016/01/07 PHP
详解PHP的Yii框架中扩展的安装与使用
2016/04/01 PHP
centos下file_put_contents()无法写入文件的原因及解决方法
2017/04/01 PHP
详解PHP中的8个魔术常量
2020/07/06 PHP
基于jquery的无限级联下拉框js插件
2011/10/29 Javascript
在Javascript中 声明时用"var"与不用"var"的区别
2013/04/15 Javascript
javascript实现带下拉子菜单的导航菜单效果
2015/05/14 Javascript
JS+CSS简单树形菜单实现方法
2015/09/12 Javascript
Form表单按回车自动提交表单的实现方法
2016/11/18 Javascript
JavaScript实现开关等效果
2017/09/08 Javascript
VueJs监听window.resize方法示例
2018/01/17 Javascript
cdn模式下vue的基本用法详解
2018/10/07 Javascript
js实现按钮开关单机下拉菜单效果
2018/11/22 Javascript
微信小程序简单的canvas裁剪图片功能详解
2019/07/12 Javascript
Python内置函数的用法实例教程
2014/09/08 Python
pygame实现俄罗斯方块游戏(对战篇1)
2019/10/29 Python
python 定义类时,实现内部方法的互相调用
2019/12/25 Python
html5 的a标签 Href 拨电话的写法
2013/11/04 HTML / CSS
实例讲解HTML5的meta标签的一些应用
2015/12/08 HTML / CSS
德国网上花店:Valentins
2018/08/15 全球购物
彪马法国官网:PUMA法国
2019/12/15 全球购物
Belvilla法国:休闲度假房屋出租
2020/10/03 全球购物
Linux不知道文件后缀名怎么判断文件类型
2012/04/26 面试题
小学教师听课制度
2014/02/01 职场文书
临床护理求职信
2014/04/26 职场文书
教师国庆节演讲稿范文2014
2014/09/21 职场文书
党员“四风”问题批评与自我批评思想汇报
2014/10/06 职场文书
疾病证明书
2015/06/19 职场文书
优秀党员先进事迹材料2016
2016/02/29 职场文书
送给自己的励志语句:要安静的优秀,悄无声息的坚强
2019/11/26 职场文书
CSS中Single Div 绘图技巧的实现
2021/06/18 HTML / CSS