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中列表生成式和生成器的区别
Aug 03 Python
浅谈function(函数)中的动态参数
Apr 30 Python
python paramiko模块学习分享
Aug 23 Python
Python自定义线程池实现方法分析
Feb 07 Python
Python 3.x 判断 dict 是否包含某键值的实例讲解
Jul 06 Python
Python实现登陆文件验证方法
Oct 06 Python
Python3对称加密算法AES、DES3实例详解
Dec 06 Python
Python实现的多进程拷贝文件并显示百分比功能示例
Apr 09 Python
python实现两个字典合并,两个list合并
Dec 02 Python
Python如何实现自带HTTP文件传输服务
Jul 08 Python
对PyTorch中inplace字段的全面理解
May 22 Python
Python如何用re模块实现简易tokenizer
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中的数组操作函数整理
2008/08/18 PHP
PHP企业级应用之常见缓存技术篇
2011/01/27 PHP
php中fsockopen用法实例
2015/01/05 PHP
jquery 全局AJAX事件使用代码
2010/11/05 Javascript
JS随机漂浮广告代码具体实例
2013/11/19 Javascript
Javascript控制input输入时间格式的方法
2015/01/28 Javascript
jQuery多文件异步上传带进度条实例代码
2016/08/16 Javascript
JS轮播图中缓动函数的封装
2020/11/25 Javascript
JS去掉字符串前后空格、阻止表单提交的实现代码
2017/06/08 Javascript
详解Vue的computed(计算属性)使用实例之TodoList
2017/08/07 Javascript
Nodejs+express+ejs简单使用实例代码
2017/09/18 NodeJs
JS简单实现父子窗口传值功能示例【未使用iframe框架】
2017/09/20 Javascript
微信小程序之swiper轮播图中的图片自适应高度的方法
2018/04/23 Javascript
详解nodejs解压版安装和配置(带有搭建前端项目脚手架)
2018/12/06 NodeJs
微信小程序实现滑动切换自定义页码的方法分析
2018/12/29 Javascript
jQuery zTree树插件的使用教程
2019/08/16 jQuery
[44:30]完美世界DOTA2联赛PWL S2 GXR vs Magma 第一场 11.25
2020/11/26 DOTA
Python使用scrapy抓取网站sitemap信息的方法
2015/04/08 Python
python儿童学游戏编程知识点总结
2019/06/03 Python
django框架面向对象ORM模型继承用法实例分析
2019/07/29 Python
基于torch.where和布尔索引的速度比较
2020/01/02 Python
Python打开文件、文件读写操作、with方式、文件常用函数实例分析
2020/01/07 Python
python如何求100以内的素数
2020/05/27 Python
Python中zipfile压缩文件模块的基本使用教程
2020/06/14 Python
django rest framework 自定义返回方式
2020/07/12 Python
如何基于pandas读取csv后合并两个股票
2020/09/25 Python
Python实现曲线拟合的最小二乘法
2021/02/19 Python
Html5 postMessage实现跨域消息传递
2016/03/11 HTML / CSS
AmazeUI 单选框和多选框的实现示例
2020/08/18 HTML / CSS
大学生党课思想汇报
2013/12/29 职场文书
渡河少年教学反思
2014/02/12 职场文书
爱心倡议书范文
2014/05/12 职场文书
2014年领导班子专项整治整改方案
2014/09/28 职场文书
上市公司董事长岗位职责
2015/04/16 职场文书
有关西游记的读书笔记
2015/06/25 职场文书
2016党员入党决心书
2015/09/22 职场文书