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字符串格式化
Jun 15 Python
python如何为被装饰的函数保留元数据
Mar 21 Python
对python 各种删除文件失败的处理方式分享
Apr 24 Python
python爬虫之urllib3的使用示例
Jul 09 Python
python pygame实现2048游戏
Nov 20 Python
在python plt图表中文字大小调节的方法
Jul 08 Python
python opencv对图像进行旋转且不裁剪图片的实现方法
Jul 09 Python
python pyenv多版本管理工具的使用
Dec 23 Python
python3 中使用urllib问题以及urllib详解
Aug 03 Python
python MD5加密的示例
Oct 19 Python
Python如何识别银行卡卡号?
Jun 10 Python
浅谈Python数学建模之整数规划
Jun 23 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
mysql+php分页类(已测)
2008/03/31 PHP
php继承的一个应用
2011/09/06 PHP
php模板函数 正则实现代码
2012/10/15 PHP
PHP框架自动加载类文件原理详解
2017/06/06 PHP
PHP回调函数与匿名函数实例详解
2017/08/16 PHP
使用JavaScript库还是自己写代码?
2010/01/28 Javascript
jQuery中与toggleClass等价的程序段 以及未来学习的方向
2010/03/18 Javascript
js传参数受特殊字符影响错误的解决方法
2013/10/21 Javascript
Lua表达式和控制结构学习笔记
2014/12/15 Javascript
Bootstrap的Refresh Icon也spin起来
2016/07/13 Javascript
AngularJS bootstrap启动详解及实例代码
2016/09/14 Javascript
JS实现PC手机端和嵌入式滑动拼图验证码三种效果
2017/02/15 Javascript
利用js查找数组中指定元素并返回该元素的所有索引示例
2017/03/29 Javascript
vue2 自定义动态组件所遇到的问题
2017/06/08 Javascript
jQuery 控制文本框自动缩小字体填充
2017/06/16 jQuery
浅谈vue的props,data,computed变化对组件更新的影响
2018/01/16 Javascript
Angular使用操作事件指令ng-click传多个参数示例
2018/03/27 Javascript
Angular刷新当前页面的实现方法
2018/11/21 Javascript
原生js实现下拉选项卡
2019/11/27 Javascript
[02:37]2015国际邀请赛选手档案—LGD.Xiao8
2015/07/28 DOTA
python不带重复的全排列代码
2013/08/13 Python
树莓派中python获取GY-85九轴模块信息示例
2013/12/05 Python
Python的函数嵌套的使用方法
2014/01/24 Python
小结Python用fork来创建子进程注意事项
2014/07/03 Python
python 杀死自身进程的实现方法
2019/07/01 Python
python3.6 tkinter实现屏保小程序
2019/07/30 Python
python创建属于自己的单词词库 便于背单词
2019/07/30 Python
TensorFLow 变量命名空间实例
2020/02/11 Python
10张动图学会python循环与递归问题
2021/02/06 Python
Ariat英国官网:为世界顶级马术运动员制造最优质的鞋类和服装
2020/02/14 全球购物
空指针到底是什么
2012/08/07 面试题
公证委托书大全
2014/04/04 职场文书
党员干部形式主义个人整改措施
2014/09/17 职场文书
党政领导班子群众路线对照检查材料思想汇报
2014/09/27 职场文书
2015年教师党员公开承诺书
2015/01/22 职场文书
win10怎么设置右下角图标不折叠?Win10设置右下角图标不折叠的方法
2022/07/15 数码科技