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算术运算符实例详解
May 31 Python
分享一下如何编写高效且优雅的 Python 代码
Sep 07 Python
Python之web模板应用
Dec 26 Python
Python Socket编程之多线程聊天室
Jul 28 Python
Python 面试中 8 个必考问题
Nov 16 Python
python使用tkinter库实现五子棋游戏
Jun 18 Python
python django生成迁移文件的实例
Aug 31 Python
pytorch制作自己的LMDB数据操作示例
Dec 18 Python
TensorFlow实现checkpoint文件转换为pb文件
Feb 10 Python
Python参数传递实现过程及原理详解
May 14 Python
Python QTimer实现多线程及QSS应用过程解析
Jul 11 Python
python脚本框架webpy模板控制结构
Nov 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中array_merge和array相加的区别分析
2013/06/17 PHP
PHP回调函数概念与用法实例分析
2017/11/03 PHP
PHP swoole和redis异步任务实现方法分析
2019/08/12 PHP
基于jQuery的input输入框下拉提示层(自动邮箱后缀名)
2012/06/14 Javascript
重写javascript中window.confirm的行为
2012/10/21 Javascript
使用jquery的ajax需要注意的地方dataType的设置
2013/08/12 Javascript
Javascript之this关键字深入解析
2013/11/12 Javascript
浅谈javascript的调试
2015/01/28 Javascript
浅谈javascript属性onresize
2015/04/20 Javascript
分享jQuery插件的学习笔记
2016/01/14 Javascript
JS onkeypress兼容性写法详解
2016/04/27 Javascript
JQuery DIV 动态隐藏和显示的方法
2016/06/23 Javascript
自己封装的一个简单的倒计时功能实例
2016/11/23 Javascript
微信小程序 MD5加密登录密码详解及实例代码
2017/01/12 Javascript
最常见和最有用的字符串相关的方法详解
2017/02/06 Javascript
基于JavaScript实现瀑布流效果
2017/03/29 Javascript
js编写选项卡效果
2017/05/23 Javascript
Vue2.0 slot分发内容与props验证的方法
2017/12/12 Javascript
Vue.js 时间转换代码及时间戳转时间字符串
2018/10/16 Javascript
NodeJs实现简单的爬虫功能案例分析
2018/12/05 NodeJs
js中offset,client , scroll 三大元素知识点总结
2019/09/11 Javascript
[38:39]KG vs Mineski 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
python读取json文件并将数据插入到mongodb的方法
2015/03/23 Python
Python中map,reduce,filter和sorted函数的使用方法
2015/08/17 Python
Python中文件I/O高效操作处理的技巧分享
2017/02/04 Python
Flask框架配置与调试操作示例
2018/07/23 Python
python实现石头剪刀布小游戏
2021/01/20 Python
详解Django 时间与时区设置问题
2019/07/23 Python
带你彻底搞懂python操作mysql数据库(cursor游标讲解)
2020/01/06 Python
Marc O’Polo俄罗斯官方在线商店:德国高端时尚品牌
2019/12/26 全球购物
伊莱克斯阿根廷网上商店:Tienda Electrolux
2021/03/08 全球购物
Java面试题汇总
2015/12/06 面试题
幼儿园家长会邀请函
2014/01/15 职场文书
社会稳定风险评估方案
2014/06/02 职场文书
党员发展大会主持词
2015/07/03 职场文书
Nginx解决前端访问资源跨域问题的方法详解
2021/03/31 Servers