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的另外几种语言实现
Jan 29 Python
Python网络爬虫出现乱码问题的解决方法
Jan 05 Python
Python将多个excel表格合并为一个表格
Feb 22 Python
ubuntu17.4下为python和python3装上pip的方法
Jun 12 Python
对pandas中Series的map函数详解
Jul 25 Python
浅谈python新式类和旧式类区别
Apr 26 Python
Python 实现输入任意多个数,并计算其平均值的例子
Jul 16 Python
Python实现基于socket的udp传输与接收功能详解
Nov 15 Python
Python Sphinx使用实例及问题解决
Jan 17 Python
如何基于pythonnet调用halcon脚本
Jan 20 Python
Python机器学习之基于Pytorch实现猫狗分类
Jun 08 Python
FP-growth算法发现频繁项集——发现频繁项集
Jun 24 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函数
2008/10/03 PHP
php判断对象是派生自哪个类的方法
2015/06/20 PHP
php对二维数组进行相关操作(排序、转换、去空白等)
2015/11/04 PHP
浅谈PHP SHA1withRSA加密生成签名及验签
2019/03/18 PHP
在一个form用一个SUBMIT(或button)分别提交到两个处理表单页面的代码
2007/02/15 Javascript
jQuery中绑定事件的命名空间详解
2011/04/05 Javascript
Jquery each方法跳出循环,并获取返回值(实例讲解)
2013/12/12 Javascript
js/jquery解析json和数组格式的方法详解
2014/01/09 Javascript
js中的getAttribute方法使用示例
2014/08/01 Javascript
JS实现OCX控件的事件响应示例
2014/09/17 Javascript
JS自定义对象实现Java中Map对象功能的方法
2015/01/20 Javascript
javascript图片切换综合实例(循环切换、顺序切换)
2016/01/13 Javascript
EasyUI 中combotree 默认不能选择父节点的实现方法
2016/11/07 Javascript
详解angular中如何监控dom渲染完毕
2017/01/03 Javascript
JS三目运算(三元运算)方法详解
2017/03/01 Javascript
微信小程序聊天功能的示例代码
2020/01/13 Javascript
js中!和!!的区别与用法
2020/05/09 Javascript
js制作提示框插件
2020/12/24 Javascript
用Python进行TCP网络编程的教程
2015/04/29 Python
Python自然语言处理 NLTK 库用法入门教程【经典】
2018/06/26 Python
给你一面国旗 教你用python画中国国旗
2019/09/24 Python
基于MSELoss()与CrossEntropyLoss()的区别详解
2020/01/02 Python
python实现随机加减法生成器
2020/02/24 Python
python实现打砖块游戏
2020/02/25 Python
recorder.js 基于Html5录音功能的实现
2020/05/26 HTML / CSS
武汉世纪畅想数字传播有限公司.NET笔试题
2014/07/22 面试题
国家励志奖学金获奖感言
2014/01/09 职场文书
读书月活动方案
2014/05/22 职场文书
做一个有道德的人活动实施方案
2014/08/23 职场文书
2015年高校图书馆工作总结
2015/04/30 职场文书
幼儿园教研工作总结2015
2015/05/12 职场文书
2015国庆节宣传语
2015/07/14 职场文书
2015年主婚人婚礼致辞
2015/07/28 职场文书
公司员工培训管理制度
2015/08/04 职场文书
Python爬取英雄联盟MSI直播间弹幕并生成词云图
2021/06/01 Python
springboot读取nacos配置文件
2022/05/20 Java/Android