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打印输出数组中全部元素
Mar 13 Python
Python操作Sql Server 2008数据库的方法详解
May 17 Python
完美解决Python 2.7不能正常使用pip install的问题
Jun 12 Python
在python中利用GDAL对tif文件进行读写的方法
Nov 29 Python
浅析pandas 数据结构中的DataFrame
Oct 12 Python
python 实现在shell窗口中编写print不向屏幕输出
Feb 19 Python
Pytorch转keras的有效方法,以FlowNet为例讲解
May 26 Python
Python Scrapy图片爬取原理及代码实例
Jun 12 Python
python如何删除文件、目录
Jun 23 Python
总结Pyinstaller的坑及终极解决方法(小结)
Sep 21 Python
Python使用openpyxl批量处理数据
Jun 23 Python
Python实现简单得递归下降Parser
May 02 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微信支付之APP支付方法
2015/03/04 PHP
YII2.0之Activeform表单组件用法实例
2016/01/09 PHP
php项目开发中用到的快速排序算法分析
2016/06/25 PHP
YII2框架中添加自定义模块的方法实例分析
2020/03/18 PHP
基于Jquery的跨域传输数据(JSONP)
2011/03/10 Javascript
jQuery实现Twitter的自动文字补齐特效
2014/11/28 Javascript
jQuery的animate函数实现图文切换动画效果
2015/05/03 Javascript
JavaScript SHA512&SHA256加密算法详解
2015/08/11 Javascript
基于jquery实现即时检查格式是否正确的表单
2016/05/06 Javascript
jQuery过滤特殊字符及JS字符串转为数字
2016/05/26 Javascript
Javascript highcharts 饼图显示数量和百分比实例代码
2016/12/06 Javascript
微信小程序实现action-sheet弹出底部菜单功能【附源码下载】
2017/12/09 Javascript
解决vue-cli项目webpack打包后iconfont文件路径的问题
2018/09/01 Javascript
element-ui组件table实现自定义筛选功能的示例代码
2019/03/15 Javascript
微信小程序:数据存储、传值、取值详解
2019/05/07 Javascript
jqGrid表格底部汇总、合计行footerrow处理
2019/08/21 Javascript
微信小程序3D轮播实现代码
2019/09/19 Javascript
vue element 关闭当前tab 跳转到上一路由操作
2020/07/22 Javascript
vue 数据操作相关总结
2020/12/17 Vue.js
解决python文件字符串转列表时遇到空行的问题
2017/07/09 Python
python版学生管理系统
2018/01/10 Python
Python BS4库的安装与使用详解
2018/08/08 Python
对Python 窗体(tkinter)树状数据(Treeview)详解
2018/10/11 Python
Python爬虫实现验证码登录代码实例
2019/05/10 Python
Python切割图片成九宫格的示例代码
2020/03/10 Python
django处理select下拉表单实例(从model到前端到post到form)
2020/03/13 Python
Css3实现无缝滚动防抖
2020/09/14 HTML / CSS
法国太阳镜店:Sunglasses Shop
2016/08/27 全球购物
2014年庆元旦活动方案
2014/02/15 职场文书
挂靠协议书范本
2014/04/22 职场文书
文明寝室申报材料
2014/05/12 职场文书
金融专业毕业生自荐信
2014/06/26 职场文书
中国梦演讲稿5分钟
2014/08/19 职场文书
地道战观后感300字
2015/06/04 职场文书
停车场管理制度范本
2015/08/05 职场文书
教师远程研修感悟
2015/11/18 职场文书