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连接sql server乱码的解决方法
Jan 28 Python
python类型强制转换long to int的代码
Feb 10 Python
利用Python的Twisted框架实现webshell密码扫描器的教程
Apr 16 Python
Django中针对基于类的视图添加csrf_exempt实例代码
Feb 11 Python
python numpy元素的区间查找方法
Nov 14 Python
python3 小数位的四舍五入(用两种方法解决round 遇5不进)
Apr 11 Python
Python安装Flask环境及简单应用示例
May 03 Python
python关于矩阵重复赋值覆盖问题的解决方法
Jul 19 Python
Django 源码WSGI剖析过程详解
Aug 05 Python
使用python远程操作linux过程解析
Dec 04 Python
Python 找出出现次数超过数组长度一半的元素实例
May 11 Python
Python基于gevent实现高并发代码实例
May 15 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
fgetcvs在linux的问题
2012/01/15 PHP
php数组一对一替换实现代码
2012/08/31 PHP
PHP远程采集图片详细教程
2014/07/01 PHP
PHP+iFrame实现页面无需刷新的异步文件上传
2014/09/16 PHP
PHP中实现中文字串截取无乱码的解决方法
2018/05/29 PHP
读jQuery之八 包装事件对象
2011/06/21 Javascript
根据邮箱的域名跳转到相应的登录页面的代码
2012/02/27 Javascript
基于jquery的时间段实现代码
2012/08/02 Javascript
Angular 路由route实例代码
2016/07/12 Javascript
浅谈JS对html标签的属性的干预以及对CSS样式表属性的干预
2017/06/25 Javascript
详解webpack 热更新优化
2018/09/13 Javascript
vue组件开发props验证的实现
2019/02/12 Javascript
详解Bootstrap 学习(一)入门
2019/04/12 Javascript
js实现div色块拖动录制
2020/01/16 Javascript
浅谈JavaScript 声明提升
2020/09/14 Javascript
使用PYTHON接收多播数据的代码
2012/03/01 Python
Python 常用的安装Module方式汇总
2017/05/06 Python
pytorch构建网络模型的4种方法
2018/04/13 Python
python2使用bs4爬取腾讯社招过程解析
2019/08/14 Python
Python hmac模块使用实例解析
2019/12/24 Python
PyTorch学习:动态图和静态图的例子
2020/01/06 Python
python range实例用法分享
2020/02/06 Python
OpenCV中VideoCapture类的使用详解
2020/02/14 Python
浅谈keras保存模型中的save()和save_weights()区别
2020/05/21 Python
Python是什么 Python的用处
2020/05/26 Python
用python批量下载apk
2020/12/29 Python
瑞典灯具和照明网上商店:Lamp24.se
2018/03/17 全球购物
香港连卡佛百货官网:Lane Crawford
2019/09/04 全球购物
《七颗钻石》教学反思
2014/02/28 职场文书
四议两公开实施方案
2014/03/28 职场文书
语文教育专业求职信
2014/06/28 职场文书
企业安全生产责任书范本
2014/07/28 职场文书
《岳阳楼记》原文、译文赏析
2019/09/10 职场文书
微信小程序实现拍照和相册选取图片
2021/05/09 Javascript
bat批处理之字符串操作的实现
2022/03/16 Python
CentOS7环境下MySQL8常用命令小结
2022/06/10 Servers