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 相关文章推荐
打开电脑上的QQ的python代码
Feb 10 Python
Python简单进程锁代码实例
Apr 27 Python
python计算对角线有理函数插值的方法
May 07 Python
Python中字典的基本知识初步介绍
May 21 Python
python存储16bit和32bit图像的实例
Dec 05 Python
对Python获取屏幕截图的4种方法详解
Aug 27 Python
python子线程退出及线程退出控制的代码
Oct 16 Python
用Python实现校园通知更新提醒功能
Nov 23 Python
Python figure参数及subplot子图绘制代码
Apr 18 Python
翻转数列python实现,求前n项和,并能输出整个数列的案例
May 03 Python
Python devel安装失败问题解决方案
Jun 09 Python
Python类super()及私有属性原理解析
Jun 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
PHP中使用strpos函数实现屏蔽敏感关键字功能
2014/08/21 PHP
基于Laravel(5.4版本)的基本增删改查操作方法
2019/10/11 PHP
jQuery div层的放大与缩小简单实现代码
2013/03/28 Javascript
浅析基于WEB前端页面的页面内容搜索的实现思路
2014/06/10 Javascript
分享2个jQuery插件--jquery.fileupload与artdialog
2014/12/26 Javascript
javascript中attachEvent用法实例分析
2015/05/14 Javascript
JavaScript兼容性总结之获取非行间样式案例
2016/08/07 Javascript
jQuery EasyUI 页面加载等待及页面等待层
2017/02/06 Javascript
Vue.js中组件中的slot实例详解
2017/07/17 Javascript
jQuery实现通过方向键控制div块上下左右移动的方法【测试可用】
2018/04/26 jQuery
基于Vue2x实现响应式自适应轮播组件插件VueSliderShow功能
2018/05/16 Javascript
Angular5集成eventbus的示例代码
2018/07/19 Javascript
JS 自执行函数原理及用法
2019/08/05 Javascript
[01:46]辉夜杯—打造中国DOTA新格局
2015/12/25 DOTA
[49:05]Newbee vs TNC 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
浅谈python中的实例方法、类方法和静态方法
2017/02/17 Python
python实现超简单的视频对象提取功能
2018/06/04 Python
解决python3捕获cx_oracle抛出的异常错误问题
2018/10/18 Python
python实现两个经纬度点之间的距离和方位角的方法
2019/07/05 Python
Pandas0.25来了千万别错过这10大好用的新功能
2019/08/07 Python
python 实现手机自动拨打电话的方法(通话压力测试)
2019/08/08 Python
Python银行系统实战源码
2019/10/25 Python
Django实现网页分页功能
2019/10/31 Python
如何用python免费看美剧
2020/08/11 Python
德国知名健康零食网上商店:Seeberger
2017/07/27 全球购物
C语言笔试题
2014/09/04 面试题
学术会议欢迎词
2014/01/09 职场文书
《雨霖铃》教学反思
2014/02/22 职场文书
《孔子拜师》教学反思
2014/02/24 职场文书
机关工会开展学习雷锋活动总结
2014/03/01 职场文书
科学育儿宣传标语
2014/10/08 职场文书
群众路线剖析材料怎么写
2014/10/09 职场文书
酒店前台接待岗位职责
2015/04/02 职场文书
2015年社区创卫工作总结
2015/04/21 职场文书
思想品德课教学反思
2016/02/24 职场文书
防止web项目中的SQL注入
2021/12/06 MySQL