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中 os._exit() 和 sys.exit(), exit(0)和exit(1) 的用法和区别
Jun 23 Python
python的pdb调试命令的命令整理及实例
Jul 12 Python
浅谈python for循环的巧妙运用(迭代、列表生成式)
Sep 26 Python
python 为什么说eval要慎用
Mar 26 Python
python使用Plotly绘图工具绘制气泡图
Apr 01 Python
opencv 获取rtsp流媒体视频的实现方法
Aug 23 Python
python3.7 openpyxl 删除指定一列或者一行的代码
Oct 08 Python
基于Python和PyYAML读取yaml配置文件数据
Jan 13 Python
Python loguru日志库之高效输出控制台日志和日志记录
Mar 07 Python
jupyter notebook参数化运行python方式
Apr 10 Python
python实现飞船大战
Apr 24 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中ob(Output Buffer 输出缓冲)函数使用方法
2007/07/21 PHP
用PHP读取flv文件的播放时间长度
2009/09/03 PHP
关于php循环跳出的问题
2013/07/01 PHP
php之curl实现http与https请求的方法
2014/10/21 PHP
round robin权重轮循算法php实现代码
2016/05/28 PHP
PHP通过微信跳转的Code参数获取用户的openid(关键代码)
2016/07/06 PHP
JavaScript将Table导出到Excel实现思路及代码
2013/03/13 Javascript
JavaScript原型链示例分享
2014/01/26 Javascript
提升PHP安全:8个必须修改的PHP默认配置
2014/11/17 Javascript
Javascript 正则表达式实现为数字添加千位分隔符
2015/03/10 Javascript
JS封装的选项卡TAB切换效果示例
2016/09/20 Javascript
基于JS快速实现导航下拉菜单动画效果附源码下载
2016/10/27 Javascript
javascript入门之string对象【新手必看】
2016/11/22 Javascript
jQuery使用正则验证15/18身份证的方法示例
2017/04/27 jQuery
微信小程序--组件(swiper)详细介绍
2017/06/13 Javascript
ReactNative之键盘Keyboard的弹出与消失示例
2017/07/11 Javascript
JavaScript中in和hasOwnProperty区别详解
2017/08/04 Javascript
AngularJS实现的select二级联动下拉菜单功能示例
2017/10/25 Javascript
MVVM 双向绑定的实现代码
2018/06/21 Javascript
JSON的parse()方法介绍
2019/01/31 Javascript
python函数参数*args**kwargs用法实例
2013/12/04 Python
python实现将多个文件分配到多个文件夹的方法
2019/01/07 Python
python pytest进阶之conftest.py详解
2019/06/27 Python
详细介绍pandas的DataFrame的append方法使用
2019/07/31 Python
简单了解python中的与或非运算
2019/09/18 Python
HTML5 Canvas实现放大镜效果示例
2020/03/25 HTML / CSS
团工委书记自荐书范文
2013/12/17 职场文书
十佳教师事迹材料
2014/01/11 职场文书
爱心捐助倡议书
2014/05/19 职场文书
机械制造专业大学生自我鉴定
2014/09/19 职场文书
审美与表现自我评价
2015/03/09 职场文书
民事起诉书范本
2015/05/19 职场文书
感恩教师节主题班会
2015/08/12 职场文书
校运会班级霸气口号
2015/12/24 职场文书
《称赞》教学反思
2016/02/17 职场文书
对讲机的最大通讯距离是多少
2022/02/18 无线电