python并发编程多进程之守护进程原理解析

 更新时间:2019年08月20日 14:31:35   作者:minger_lcm  
这篇文章主要介绍了python并发编程多进程之守护进程原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

守护进程

主进程创建子进程目的是:主进程有一个任务需要并发执行,那开启子进程帮我并发执行任务

主进程创建子进程,然后将该进程设置成守护自己的进程

关于守护进程需要强调两点:

其一:守护进程会在主进程代码执行结束后就终止

其二:守护进程内无法再开启子进程,否则抛出异常: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
'''

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 关于tf.nn.dynamic_rnn返回值详解

    关于tf.nn.dynamic_rnn返回值详解

    今天小编就为大家分享一篇关于tf.nn.dynamic_rnn返回值详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • Python如何获取文件路径/目录

    Python如何获取文件路径/目录

    这篇文章主要介绍了Python如何获取文件路径/目录,帮助大家更好的利用python处理文件,感兴趣的朋友可以了解下
    2020-09-09
  • python实现tail -f 功能

    python实现tail -f 功能

    这篇文章主要介绍了python实现tail -f 功能,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-01-01
  • python中int与str互转方法

    python中int与str互转方法

    最近学习python中的数据类型时,难免联想到java中的基本型数据类型与引用型数据类型。接下来通过本文给大家介绍python中int与str互转,需要的朋友可以参考下
    2018-07-07
  • Python内建类型bytes深入理解

    Python内建类型bytes深入理解

    这篇文章主要为大家介绍了Python内建类型bytes的深入理解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • python操作mongodb根据_id查询数据的实现方法

    python操作mongodb根据_id查询数据的实现方法

    这篇文章主要介绍了python操作mongodb根据_id查询数据的实现方法,实例分析了Python根据pymongo不同版本操作ObjectId的技巧,需要的朋友可以参考下
    2015-05-05
  • Python利用BeautifulSoup解析网页内容

    Python利用BeautifulSoup解析网页内容

    当今信息爆炸的时代,网络上充斥着海量的数据,而网络爬虫作为一种数据采集工具,扮演着至关重要的角色,BeautifulSoup 是一个Python库,它可以从HTML或XML文件中提取数据,本文介绍了Python如何利用BeautifulSoup解析网页内容,需要的朋友可以参考下
    2024-06-06
  • python优雅实现代码与敏感信息分离的方法

    python优雅实现代码与敏感信息分离的方法

    这篇文章主要介绍了python优雅实现代码与敏感信息分离的方法,在flask中,python-dotenv 可以无缝接入项目中,只要你的项目中存在 .env 或者 .flaskenv 文件,他就会提示你是否安装 python-dotenv,需要的朋友可以参考下
    2022-05-05
  • Python实战之IQ测试系统的实现

    Python实战之IQ测试系统的实现

    通常,智商测试测验一个人在数字、空间、逻辑、词汇、创造、记忆等方面的能力。本文将利用Python实现一个IQ测试系统,感兴趣的可以了解一下
    2022-09-09
  • Python Tkinter对话框控件使用详解

    Python Tkinter对话框控件使用详解

    Tkinter中提供了三种对话框控件:文件选择对话框、颜色选择对话框和消息对话框。本文将具体为大家介绍一下这三种对话框的使用,需要的可以参考一下
    2022-01-01

最新评论