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中的tkinter模块作图的方法
Feb 07 Python
python使用标准库根据进程名如何获取进程的pid详解
Oct 31 Python
TF-IDF与余弦相似性的应用(二) 找出相似文章
Dec 21 Python
python的turtle库使用详解
May 10 Python
Python3匿名函数lambda介绍与使用示例
May 18 Python
Python爬虫使用浏览器cookies:browsercookie过程解析
Oct 22 Python
TensorFlow索引与切片的实现方法
Nov 20 Python
Tensorflow的常用矩阵生成方式
Jan 04 Python
关于torch.optim的灵活使用详解(包括重写SGD,加上L1正则)
Feb 20 Python
Python decimal模块使用方法详解
Jun 08 Python
Pytorch1.5.1版本安装的方法步骤
Dec 31 Python
Pytorch使用shuffle打乱数据的操作
May 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格式化json函数示例代码
2016/05/12 PHP
PHP数组函数知识汇总
2016/05/12 PHP
PHP根据session与cookie用户登录状态操作类的代码
2016/05/13 PHP
Yii2组件之多图上传插件FileInput的详细使用教程
2016/06/20 PHP
PHP实现的网站目录扫描索引工具
2016/09/08 PHP
在Laravel中实现使用AJAX动态刷新部分页面
2019/10/15 PHP
php7 图形用户界面GUI 开发示例
2020/02/22 PHP
php 使用ActiveMQ发送消息,与处理消息操作示例
2020/02/23 PHP
通过 Dom 方法提高 innerHTML 性能
2008/03/26 Javascript
转换json格式的日期为Javascript对象的函数
2010/07/13 Javascript
关于图片按比例自适应缩放的js代码
2011/10/30 Javascript
YUI模块开发原理详解
2013/11/18 Javascript
鼠标滑在标题上显示图片的JS代码
2013/11/19 Javascript
jQuery实现购物车多物品数量的加减+总价计算
2014/06/06 Javascript
JS实现判断滚动条滚到页面底部并执行事件的方法
2014/12/18 Javascript
jQuery实现鼠标经过弹出提示信息的地图热点效果
2015/08/07 Javascript
bootstrap select插件封装成Vue2.0组件
2017/04/17 Javascript
浅谈Vue.js 1.x 和 2.x 实例的生命周期
2017/07/25 Javascript
vue+element模态框中新增模态框和删除功能
2019/06/11 Javascript
Vue动态加载图片在跨域时无法显示的问题及解决方法
2020/03/10 Javascript
python实现人人网登录示例分享
2014/01/19 Python
python+matplotlib实现鼠标移动三角形高亮及索引显示
2018/01/15 Python
Django restframework 源码分析之认证详解
2019/02/22 Python
【python】matplotlib动态显示详解
2019/04/11 Python
python os.fork() 循环输出方法
2019/08/08 Python
关于pymysql模块的使用以及代码详解
2019/09/01 Python
利用python实现冒泡排序算法实例代码
2019/12/01 Python
Python HTMLTestRunner可视化报告实现过程解析
2020/04/10 Python
Keras中的多分类损失函数用法categorical_crossentropy
2020/06/11 Python
导致python中import错误的原因是什么
2020/07/01 Python
Python调用C/C++的方法解析
2020/08/05 Python
AVON雅芳官网:世界上最大的美容化妆品公司之一
2016/11/02 全球购物
Europcar德国:全球汽车租赁领域的领导者
2018/08/15 全球购物
领导干部整治奢华浪费之风思想汇报
2014/10/07 职场文书
职工年度考核评语
2014/12/31 职场文书
KTV员工管理制度
2015/08/06 职场文书