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中还原JavaScript的escape函数编码后字符串的方法
Aug 22 Python
深入讲解Python函数中参数的使用及默认参数的陷阱
Mar 13 Python
Python 使用SMTP发送邮件的代码小结
Sep 21 Python
Flask Web开发入门之文件上传(八)
Aug 17 Python
Python使用字典的嵌套功能详解
Feb 27 Python
python每5分钟从kafka中提取数据的例子
Dec 23 Python
解决Opencv+Python cv2.imshow闪退问题
Apr 24 Python
你应该知道的Python3.6、3.7、3.8新特性小结
May 12 Python
python中 _、__、__xx__()区别及使用场景
Jun 30 Python
详解python模块pychartdir安装及导入问题
Oct 22 Python
python爬虫中抓取指数的实例讲解
Dec 01 Python
python 基于pygame实现俄罗斯方块
Mar 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
世界咖啡生产者论坛呼吁:需要立即就咖啡价格采取认真行动
2021/03/06 咖啡文化
yii2实现根据时间搜索的方法
2016/05/25 PHP
将PHP的session数据存储到数据库中的代码实例
2016/06/24 PHP
PHP单例模式与工厂模式详解
2017/08/29 PHP
Smarty缓存机制实例详解【三种缓存方式】
2019/07/20 PHP
jquery 快速回到页首的方法
2013/12/05 Javascript
Node.js实用代码段之正确拼接Buffer
2016/03/17 Javascript
React.js入门学习第一篇
2016/03/30 Javascript
常用原生js自定义函数总结
2016/11/20 Javascript
jQuery插件HighCharts绘制的2D堆柱状图效果示例【附demo源码下载】
2017/03/14 Javascript
基于BootStrap实现简洁注册界面
2017/07/20 Javascript
浅谈vue-router 路由传参的方法
2017/12/27 Javascript
Vue组件的使用教程详解
2018/01/05 Javascript
Spring Boot/VUE中路由传递参数的实现代码
2018/03/02 Javascript
Bootstrap开发中Tab标签页切换图表显示问题的解决方法
2018/07/13 Javascript
ES6 Promise对象的应用实例分析
2019/06/27 Javascript
详解JavaScript匿名函数和闭包
2020/07/10 Javascript
[03:04]DOTA2英雄基础教程 影魔
2013/12/11 DOTA
详解Python中的__getitem__方法与slice对象的切片操作
2016/06/27 Python
python获取微信小程序手机号并绑定遇到的坑
2018/11/19 Python
python 读取dicom文件,生成info.txt和raw文件的方法
2019/01/24 Python
使用Python实现牛顿法求极值
2020/02/10 Python
python中的selenium安装的步骤(浏览器自动化测试框架)
2020/03/17 Python
python中的插入排序的简单用法
2021/01/19 Python
python爬取股票最新数据并用excel绘制树状图的示例
2021/03/01 Python
雅诗兰黛旗下走天然植物路线的彩妆品牌:Prescriptives
2016/08/14 全球购物
茵宝(Umbro)英国官方商店:英国足球服装生产商
2016/12/29 全球购物
加拿大最大的相机店:Henry’s
2017/05/17 全球购物
德国、奥地利和瑞士最大的旅行和度假门户网站:HolidayCheck
2019/11/14 全球购物
毕业生物理教师求职信
2013/10/17 职场文书
职业教育毕业生求职信
2013/11/09 职场文书
群众路线领导对照材料
2014/08/23 职场文书
2015年仓库管理工作总结
2015/05/25 职场文书
遗愿清单观后感
2015/06/09 职场文书
MySQL8.0.18配置多主一从
2021/06/21 MySQL
vue修饰符.capture和.self的区别
2022/04/22 Vue.js