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实现把xml或xsl转换为html格式
Apr 08 Python
Python命令行参数解析模块getopt使用实例
Apr 13 Python
Python工程师面试题 与Python Web相关
Jan 14 Python
python MNIST手写识别数据调用API的方法
Aug 08 Python
python删除字符串中指定字符的方法
Aug 13 Python
python读csv文件时指定行为表头或无表头的方法
Jun 26 Python
简单了解python字符串前面加r,u的含义
Dec 26 Python
浅谈tensorflow 中tf.concat()的使用
Feb 07 Python
Pytorch maxpool的ceil_mode用法
Feb 18 Python
Python中seaborn库之countplot的数据可视化使用
Jun 11 Python
Python pandas求方差和标准差的方法实例
Aug 04 Python
python使用shell脚本创建kafka连接器
Apr 29 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/03 咖啡文化
codeigniter中view通过循环显示数组数据的方法
2015/03/20 PHP
浅谈PHP的反射机制
2016/12/15 PHP
Yii框架小部件(Widgets)用法实例详解
2020/05/15 PHP
Js base64 加密解密介绍
2013/10/11 Javascript
Javascript浅谈之this
2013/12/17 Javascript
删除javascript所创建子节点的方法
2015/05/21 Javascript
js实现简单折叠、展开菜单的方法
2015/08/28 Javascript
JS右下角广告窗口代码(可收缩、展开及关闭)
2015/09/04 Javascript
jquery分页插件jquery.pagination.js实现无刷新分页
2016/04/01 Javascript
vuex中使用对象展开运算符的示例
2017/09/25 Javascript
微信小程序自定义组件之可清除的input组件
2018/07/17 Javascript
ajax与jsonp的区别及用法
2018/10/16 Javascript
vue图片上传本地预览组件使用详解
2019/02/20 Javascript
JS自定义对象创建与简单使用方法示例
2020/01/15 Javascript
jQuery实现异步上传一个或多个文件
2020/08/17 jQuery
详解Python编程中基本的数学计算使用
2016/02/04 Python
python开发之str.format()用法实例分析
2016/02/22 Python
浅析AST抽象语法树及Python代码实现
2016/06/06 Python
Python编程中装饰器的使用示例解析
2016/06/20 Python
python中的decorator的作用详解
2018/07/26 Python
python协程之动态添加任务的方法
2019/02/19 Python
Python列表的切片实例讲解
2019/08/20 Python
python标准库sys和OS的函数使用方法与实例详解
2020/02/12 Python
BeautifulSoup获取指定class样式的div的实现
2020/12/07 Python
pytorch 实现L2和L1正则化regularization的操作
2021/03/03 Python
出国导师推荐信
2014/01/16 职场文书
公司司机岗位职责
2014/02/07 职场文书
《学棋》教后反思
2014/04/14 职场文书
留学生求职信
2014/06/03 职场文书
领导干部作风整顿个人剖析材料
2014/10/11 职场文书
出国留学单位推荐信
2015/03/26 职场文书
目标责任书格式范文
2015/05/11 职场文书
2015年党小组工作总结
2015/05/26 职场文书
《刺客之王:C罗全景传记》:时代从来不会亏待手艺人
2019/11/28 职场文书
vue 数字翻牌器动态加载数据
2022/04/20 Vue.js