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如何实现excel数据添加到mongodb
Jul 30 Python
Python 实现随机数详解及实例代码
Apr 15 Python
11月编程语言排行榜 Python逆袭C#上升到第4
Nov 15 Python
python实现textrank关键词提取
Jun 22 Python
python如何发布自已pip项目的方法步骤
Oct 09 Python
详解用Python练习画个美队盾牌
Mar 23 Python
python获取Linux发行版名称
Aug 30 Python
python实现飞机大战游戏(pygame版)
Oct 26 Python
利用pipenv和pyenv管理多个相互独立的Python虚拟开发环境
Nov 01 Python
如何在scrapy中集成selenium爬取网页的方法
Nov 18 Python
解决pytorch读取自制数据集出现过的问题
May 31 Python
使用python绘制横竖条形图
Apr 21 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生成验证码函数
2015/10/20 PHP
php观察者模式应用场景实例详解
2017/02/03 PHP
关于PhpStorm设置点击编辑文件自动定位源文件的实现方式
2020/12/30 PHP
Mozilla中显示textarea中选择的文字
2006/09/07 Javascript
JS提交并解析后台返回的XML的代码
2008/11/03 Javascript
JQuery 学习笔记 选择器之三
2009/07/23 Javascript
jquery1.10给新增元素绑定事件的方法
2014/03/06 Javascript
js加密解密字符串可自定义密码因子
2014/05/13 Javascript
JS实现兼容各种浏览器的获取选择文本的方法【测试可用】
2016/06/21 Javascript
深入理解Angularjs中的$resource服务
2016/12/31 Javascript
详解从买域名到使用pm2部署node.js项目全过程
2018/03/07 Javascript
javascript中的event loop事件循环详解
2018/12/14 Javascript
解决 window.onload 被覆盖的问题方法
2020/01/14 Javascript
Javascript实现单选框效果
2020/12/09 Javascript
如何在vue-cli中使用css-loader实现css module
2021/01/07 Vue.js
[16:27]DOTA2 HEROS教学视频教你分分钟做大人-艾欧
2014/06/11 DOTA
python获取一组汉字拼音首字母的方法
2015/07/01 Python
Python读取Excel的方法实例分析
2015/07/11 Python
python写入已存在的excel数据实例
2018/05/03 Python
pytorch中的卷积和池化计算方式详解
2020/01/03 Python
python str字符串转uuid实例
2020/03/03 Python
全球度假村:Club Med
2017/11/27 全球购物
2014年关于两会精神的心得体会
2014/03/17 职场文书
会议主持词
2014/03/17 职场文书
意向协议书范本
2014/04/23 职场文书
中学优秀班主任事迹材料
2014/05/01 职场文书
国旗下演讲稿
2014/05/08 职场文书
教师节感恩老师演讲稿
2014/08/28 职场文书
2014年双拥工作总结
2014/11/21 职场文书
钱塘江大潮导游词
2015/02/03 职场文书
民间借贷纠纷起诉书
2015/08/03 职场文书
环保建议书作文500字
2015/09/14 职场文书
2019年年中工作总结讲话稿模板
2019/03/25 职场文书
深入理解python多线程编程
2021/04/18 Python
pytorch 权重weight 与 梯度grad 可视化操作
2021/06/05 Python
Java spring定时任务详解
2021/10/05 Java/Android