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中的线程进行网络编程的入门教程
Apr 15 Python
python通过索引遍历列表的方法
May 04 Python
Ruby元编程基础学习笔记整理
Jul 02 Python
Python实现按特定格式对文件进行读写的方法示例
Nov 30 Python
Python数据结构与算法之常见的分配排序法示例【桶排序与基数排序】
Dec 15 Python
Python实用技巧之利用元组代替字典并为元组元素命名
Jul 11 Python
Python实现将通信达.day文件读取为DataFrame
Dec 22 Python
flask实现验证码并验证功能
Dec 05 Python
安装完Python包然后找不到模块的解决步骤
Feb 13 Python
Python图像处理库PIL中图像格式转换的实现
Feb 26 Python
Python collections.defaultdict模块用法详解
Jun 18 Python
Python装饰器的练习题
Nov 23 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
DOTA2 玩家自创拉野攻略 特色英雄快速成长篇
2020/04/20 DOTA
php中判断字符串是否全是中文或含有中文的实现代码
2011/09/16 PHP
php检查函数必传参数是否存在的实例详解
2017/08/28 PHP
jQuery将多条数据插入模态框的示例代码
2014/09/25 Javascript
jQuery Validate插件实现表单强大的验证功能
2015/12/18 Javascript
jquery对象和DOM对象的任意相互转换
2016/02/21 Javascript
jquery点击改变class并toggle的实现代码
2016/05/15 Javascript
bootstrap table操作技巧分享
2017/02/15 Javascript
Node.js使用Koa搭建 基础项目
2018/01/08 Javascript
一步一步实现Vue的响应式(对象观测)
2019/09/02 Javascript
用Angular实现一个扫雷的游戏示例
2020/05/15 Javascript
[01:11:35]Liquid vs LGD 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python批量修改文件名的实现代码
2014/09/01 Python
Python自动发邮件脚本
2017/03/31 Python
Python中字典和集合学习小结
2017/07/07 Python
用Pygal绘制直方图代码示例
2017/12/07 Python
Python机器学习之决策树算法
2017/12/22 Python
Numpy数组转置的两种实现方法
2018/04/17 Python
python 统计一个列表当中的每一个元素出现了多少次的方法
2018/11/14 Python
详解如何从TensorFlow的mnist数据集导出手写体数字图片
2019/08/05 Python
html5+css3气泡组件的实现
2014/11/21 HTML / CSS
俄罗斯GamePark游戏商店网站:购买游戏、游戏机和配件
2020/03/13 全球购物
Nobody Denim官网:购买高级女士牛仔裤
2021/03/15 全球购物
在校硕士自我鉴定
2014/01/23 职场文书
班长自荐书范文
2014/02/11 职场文书
安全生产实施方案
2014/02/23 职场文书
新闻专业毕业生英文求职信
2014/03/19 职场文书
学习保证书范文
2014/04/30 职场文书
财务会计专业自荐书
2014/06/30 职场文书
党的群众路线教育实践活动个人自我剖析材料
2014/10/07 职场文书
党员民主评议个人总结
2014/10/20 职场文书
办公经费申请报告
2015/05/15 职场文书
2015国庆节放假通知范文
2015/07/30 职场文书
老干部局2015年度工作总结
2015/10/22 职场文书
Vue Element UI自定义描述列表组件
2021/05/18 Vue.js
java开发双人五子棋游戏
2022/05/06 Java/Android