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的Django框架中的模版相关知识
Jul 15 Python
Python基于opencv的图像压缩算法实例分析
May 03 Python
Python人工智能之路 之PyAudio 实现录音 自动化交互实现问答
Aug 13 Python
python+mysql实现个人论文管理系统
Oct 25 Python
Python3 虚拟开发环境搭建过程(图文详解)
Jan 06 Python
在echarts中图例legend和坐标系grid实现左右布局实例
May 16 Python
Python3开发环境搭建详细教程
Jun 18 Python
python属于软件吗
Jun 18 Python
python解释器安装教程的方法步骤
Jul 02 Python
python import 上级目录的导入
Nov 03 Python
PyCharm Community安装与配置的详细教程
Nov 24 Python
Python列表的索引与切片
Apr 07 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
thinkphp如何获取客户端IP
2015/11/03 PHP
详解PHP数组赋值方法
2015/11/07 PHP
详解PHP中array_rand函数的使用方法
2016/09/11 PHP
laravel-admin的多级联动方法
2019/09/30 PHP
JavaScript 编程引入命名空间的方法与代码
2007/08/13 Javascript
JS图片浏览组件PhotoLook的公开属性方法介绍和进阶实例代码
2010/11/09 Javascript
javaScript如何生成xmlhttp
2013/12/16 Javascript
JS加载器如何动态加载外部js文件
2016/05/26 Javascript
jQuery Chart图表制作组件Highcharts用法详解
2016/06/01 Javascript
手机端 HTML5使用photoswipe.js仿微信朋友圈图片放大效果
2016/08/25 Javascript
详解Vue监听数据变化原理
2017/03/08 Javascript
JavaScript数据结构之链表的实现
2017/03/19 Javascript
微信小程序之购物车功能
2020/09/23 Javascript
JQueryMiniUI按照时间进行查询的实现方法
2017/06/07 jQuery
前端构建工具之gulp的语法教程
2017/06/12 Javascript
Vue中错误图片的处理的实现代码
2019/11/07 Javascript
JS pushlet XMLAdapter适配器用法案例解析
2020/10/16 Javascript
[01:32]DOTA2次级联赛——首支职业女子战队选拔赛全记录
2014/10/23 DOTA
[01:36:17]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第一场 1月31日
2021/03/11 DOTA
闭包在python中的应用之translate和maketrans用法详解
2014/08/27 Python
python docx 中文字体设置的操作方法
2018/05/08 Python
解决python nohup linux 后台运行输出的问题
2018/05/11 Python
Python+pandas计算数据相关系数的实例
2018/07/03 Python
python3图片文件批量重命名处理
2019/10/31 Python
opencv3/python 鼠标响应操作详解
2019/12/11 Python
python获取网络图片方法及整理过程详解
2019/12/20 Python
在django项目中导出数据到excel文件并实现下载的功能
2020/03/13 Python
css3实现一个div设置多张背景图片及background-image属性实例演示
2017/08/10 HTML / CSS
利用CSS3实现圆角的outline效果的教程
2015/06/05 HTML / CSS
全球最大的跑步用品商店:Road Runner Sports
2016/09/11 全球购物
Travelstart沙特阿拉伯:廉价航班、豪华酒店和实惠的汽车租赁优惠
2019/04/06 全球购物
波兰在线运动商店:YesSport
2020/07/23 全球购物
年终晚会主持词
2014/03/25 职场文书
幼儿园中班上学期评语
2014/04/18 职场文书
保密协议书范本
2014/04/22 职场文书
mysql数据插入覆盖和时间戳的问题及解决
2022/03/25 MySQL