守护进程
(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.start() |
| |
| print(f'动物园 :>>> 闭园') |
| |
| |
| |
| |
| |
(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.daemon = True |
| |
| p.start() |
| |
| print(f'动物园 :>>> 闭园') |
| |
| |
| |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通