python 如何设置守护进程


Posted in Python onOctober 29, 2020

上一篇文章 介绍 join 在多进程中的作用,本文继续学习设置守护进程的对程序的影响。(Python大牛可以绕行)

我们通过两个例子说明

# encoding: utf-8
"""
author: yangyi@youzan.com
time: 2019/7/30 11:20 AM
func:
"""
from multiprocessing import Process
import os
import time

def now():
  return str(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()))

def func_1(name):
  print(now() + ' Run child process %s ,pid is %s...' % (name, os.getpid()))
  time.sleep(2)
  print(now() + ' Stop child process %s ,pid is %s...' % (name, os.getpid()))


def func_2(name):
  print(now() + ' Run child process %s , pid is %s...' % (name, os.getpid()))
  time.sleep(4)
  print(now() + ' hello world!')
  print(now() + ' Stop child process %s , pid is %s...' % (name, os.getpid()))


if __name__ == '__main__':
  print ('Parent process %s.' % os.getpid())
  p1 = Process(target=func_1, args=('func_1',))
  p2 = Process(target=func_2, args=('func_2',))
  print now() + ' Process start.'
  p1.daemon = True #设置子进程p1为守护线程
  p1.start()
  p2.start()
  print now() + ' Process end .'

结果显示

python 如何设置守护进程

启动了子进程 Run child process func_1 但是没有 func_1 的结束提示。随着主进程的结束而结束。

if __name__ == '__main__':
  print ('Parent process %s.' % os.getpid())
  p1 = Process(target=func_1, args=('func_1',))
  p2 = Process(target=func_2, args=('func_2',))
  print now() + ' Process start.'
  p2.daemon = True #设置子进程p2为守护线程
  p1.start()
  p2.start()
  print now() + ' Process end .'

结果显示

python 如何设置守护进程

启动了子进程func_1,而func_2 没有启动便随着主进程的结束而结束。

总结

对于进程或者子线程设置join() 意味着在子进程或者子线程结束运行之前,当前程序必须等待。当我们在程序中运行一个主进程(主线程),然后有创建多个子线程。主线程和子线程各自执行。当主线程想要退出程序时会检查子线程是否结束。如果我们设置deamon属性为True ,不管子线程是否结束,都会和主线程一起结束。

-The End-

以上就是python 如何设置守护进程的详细内容,更多关于python 守护进程的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python socket网络编程TCP/IP服务器与客户端通信
Jan 05 Python
TensorFLow用Saver保存和恢复变量
Mar 10 Python
Python中is和==的区别详解
Nov 15 Python
python 多线程重启方法
Feb 18 Python
解决Pyinstaller 打包exe文件 取消dos窗口(黑框框)的问题
Jun 21 Python
用python生成(动态彩色)二维码的方法(使用myqr库实现)
Jun 24 Python
python pandas写入excel文件的方法示例
Jun 25 Python
用Python配平化学方程式的方法
Jul 20 Python
浅谈Pytorch torch.optim优化器个性化的使用
Feb 20 Python
Python基于DB-API操作MySQL数据库过程解析
Apr 23 Python
在PyCharm中安装PaddlePaddle的方法
Feb 05 Python
python简单验证码识别的实现过程
Jun 20 Python
python 多线程中join()的作用
Oct 29 #Python
pycharm2020.1.2永久破解激活教程,实测有效
Oct 29 #Python
python 实现音频叠加的示例
Oct 29 #Python
详解python的super()的作用和原理
Oct 29 #Python
Python生成pdf目录书签的实例方法
Oct 29 #Python
利用python清除移动硬盘中的临时文件
Oct 28 #Python
python实现一个简单RPC框架的示例
Oct 28 #Python
You might like
解析php中反射的应用
2013/06/18 PHP
THINKPHP2.0到3.0有哪些改进之处
2015/01/04 PHP
调试WordPress中定时任务的相关PHP脚本示例
2015/12/10 PHP
PHP使用token防止表单重复提交的方法
2016/04/07 PHP
yii2使用GridView实现数据全选及批量删除按钮示例
2017/03/01 PHP
Jquery实现搜索框提示功能示例代码
2013/08/13 Javascript
jQuery学习笔记之jQuery动画效果
2013/09/09 Javascript
Node.js实现简单聊天服务器
2014/06/20 Javascript
jQuery中removeData()方法用法实例
2014/12/27 Javascript
JS实现网页顶部向下滑出的全国城市切换导航效果
2015/08/22 Javascript
JS实现超简单的仿QQ折叠菜单效果
2015/09/21 Javascript
js中 计算两个日期间的工作日的简单实例
2016/08/08 Javascript
nodejs中sleep功能实现暂停几秒的方法
2017/07/12 NodeJs
Angular6笔记之封装http的示例代码
2018/07/27 Javascript
JavaScript函数、闭包、原型、面向对象学习笔记
2018/09/06 Javascript
Vue批量图片显示时遇到的路径被解析问题
2019/03/28 Javascript
JavaScript Image对象实现原理实例解析
2020/08/26 Javascript
WebPack工具运行原理及入门教程
2020/12/02 Javascript
JQuery绑定事件四种实现方法解析
2020/12/02 jQuery
[07:57]DOTA2热力大趴狂欢夜 广州站活动回顾
2013/11/27 DOTA
[44:01]2018DOTA2亚洲邀请赛3月30日 小组赛B组 EG VS paiN
2018/03/31 DOTA
python pdb调试方法分享
2014/01/21 Python
web.py 十分钟创建简易博客实现代码
2016/04/22 Python
Python使用matplotlib实现绘制自定义图形功能示例
2018/01/18 Python
Linux下python与C++使用dlib实现人脸检测
2018/06/29 Python
pyttsx3实现中文文字转语音的方法
2018/12/24 Python
django使用admin站点上传图片的实例
2019/07/28 Python
详解Python3定时器任务代码
2019/09/23 Python
解决Pytorch 加载训练好的模型 遇到的error问题
2020/01/10 Python
Python操作Elasticsearch处理timeout超时
2020/07/17 Python
英国鹦鹉店:Parrot Essentials
2018/12/03 全球购物
JavaScript实现页面动态验证码的实现示例
2021/03/23 Javascript
应届大学生自荐信格式
2013/09/21 职场文书
个人剖析材料范文
2014/09/30 职场文书
2014年营业员工作总结
2014/11/18 职场文书
文明礼仪主题班会
2015/08/13 职场文书