守护进程

守护进程

(1)简介

  • 守护进程(Daemon Process)是在后台运行的一种特殊类型的进程。守护进程通常在系统启动时启动,并在系统关闭时关闭。它们在后台默默地执行任务,不与终端或用户交互,通常用于执行系统级别的任务、服务或守护任务。

(2)主进程死亡,子进程未死亡

from multiprocessing import Process
import time


def task(name):
    print(f'熊猫:>>{name}>>吃饭')
    time.sleep(2)
    print(f'熊猫:>>{name}>>睡觉')


if __name__ == '__main__':
    print(f'动物园 :>>> 开园')
    p = Process(target=task, args=('heart',))
    # p = Process(target=task, kwargs={"name":"dream"})

    p.start()

    print(f'动物园 :>>> 闭园')

# 动物园 :>>> 开园
# 动物园 :>>> 闭园
# 熊猫:>>heart>>吃饭
# 熊猫:>>heart>>睡觉

(3)主进程死亡,子进程必死亡

  • 在代码中,主程序启动了一个子进程 p 来执行 task 函数。然而,当主程序执行完毕后,如果子进程 p 还没有完成,主程序会立即结束,这可能导致子进程未能执行完毕。
  • 在这个情况下,将子进程 p 设置为守护进程 (p.daemon = True),这意味着当主程序结束时,守护进程 p 会随之终止,而不管它是否已经执行完毕。
from multiprocessing import Process
import time


def task(name):
    print(f'熊猫:>>{name}>>吃饭')
    time.sleep(2)
    print(f'熊猫:>>{name}>>睡觉')


if __name__ == '__main__':
    print(f'动物园 :>>> 开园')
    p = Process(target=task, args=('heart',))
    # p = Process(target=task, kwargs={"name":"dream"})

    # 将进程 p 设置成守护进程
    p.daemon = True

    p.start()

    print(f'动物园 :>>> 闭园')

# 动物园 :>>> 开园
# 动物园 :>>> 闭园
posted @ 2024-01-17 16:51  ssrheart  阅读(2)  评论(0编辑  收藏  举报