python从入门到放弃之守护进程
# ### 守护进程
默认情况下,主进程要等待所有子进程执行完毕之后,才会关闭程序,释放资源
守护进程进行在主进程代码执行结束之后,就直接关闭;
守护进程守护的是主进程
语法:
进程.daemon = True 设置当前这个进程是守护进程
守护主进程,如果主进程执行代码结束了,守护进程立刻终止
必须要写在start()调用之前,进行设置
from multiprocessing import Process
def func():
print("当前子进程start")
print("当前子进程end") if __name__ == "__main__":
p = Process(target=func)
p.daemon = True
p.start()
print("主进程执行结束")
多进程下的守护进程是怎么执行的?
如果同时创建了多个进程那么他是怎么执行的呢?
如果在多进程中创建了一个守护进程的话那么有很大的概率守护进程会不执行或者执行一半就终止,造成这种原因是为什么呢?
我上面也说过子进程是跟随主进程同时执行的,当主程序下没有任何代码执行时会强制中断守护进程那么多进程下包含的守护进程是怎么样的效果呢
def func1():
count = 1
while True:
print("*" * count)
time.sleep(0.5)
count += 1 def func2():
print("func2 start ...")
time.sleep(2)
print("func2 end ... ") if __name__ == "__main__":
p1 = Process(target=func1)
p2 = Process(target=func2) # 将p1设置成守护进程
p1.daemon = True
p1.start()
p2.start() # 延迟1秒,让守护进程执行2次
time.sleep(1) print("主进程代码执行结束... ")
如上我们可以看出守护进程是处于死循环的状态,但我主进程一旦结束会强制终止掉守护进程,不管守护进程有没有结束都强制终止
python从入门到放弃之守护进程的更多相关文章
- [Python 从入门到放弃] 6. 文件与异常(二)
本章所用test.txt文件可以在( [Python 从入门到放弃] 6. 文件与异常(一))找到并自行创建 现在有个需求,对test.txt中的文本内容进行修改: (1)将期间的‘:’改为‘ sai ...
- [Python 从入门到放弃] 1. 列表的基本操作
''' 列表 Create By 阅后即焚 On 2018.1.29 ''' 1. 列表的定义 列表看起来好像其它编程语言中的数组,但列表具备更加强大的功能,它是Python完备的集合对象,现在,你可 ...
- Python 3 并发编程多进程之守护进程
Python 3 并发编程多进程之守护进程 主进程创建守护进程 其一:守护进程会在主进程代码执行结束后就终止 其二:守护进程内无法再开启子进程,否则抛出异常:AssertionError: daemo ...
- python从入门到放弃之进程锁lock
# ### lock (互斥锁)"""# 应用在多进程当中# 互斥锁lock : 互斥锁是进程间的get_ticket互相排斥进程之间,谁先抢占到资源,谁就先上锁,等到解 ...
- Python从入门到放弃系列(Django/Flask/爬虫)
第一篇 Django从入门到放弃 第二篇 Flask 第二篇 爬虫
- python从入门到放弃之进程
在理解进程之前我们先了解一下什么是进程的概念吧 以下就是我总结的一些基本的进程概念 进程就是正在运行的程序,它是操作系统中,资源分配的最小单位(通俗易懂点也就是电脑给程序分配的一定内存操作空间).资源 ...
- python从入门到放弃之进程进阶篇
什么我们得了解清楚什么是进程,进程就是系统分配的一个资源单位,真正在程序中干活得是线程,默认是每个进程中都拥有一个线程 然后我们在了解下什么是进程池这个概念 进程池是的数量是取决于我当前电脑的逻辑处理 ...
- python从入门到放弃之线程篇
一,什么是多线程? 1.多线程的概念? 说起多线程,那么就不得不说什么是线程,而说起线程,又不得不说什么是进程. 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分 ...
- Python从入门到放弃
计算机基础 01 计算机基础之编程 02 计算机组成原理 03 计算机操作系统 04 编程语言分类 Python解释器 05 Python和Python解释器 06 执行Python程序的两种方式 0 ...
随机推荐
- BayaiM__ oracle函数_03_fjfl
BayaiM__ oracle函数_03_fjfl select TO_DATE(trunc(F_GXSJ),'YYYY-MONTH-DD') from fsxx_dx_log_new ...
- 【微学堂】线上Linux服务器运维安全策略经验分享
技术转载:https://mp.weixin.qq.com/s?__biz=MjM5NTU2MTQwNA==&mid=402022683&idx=1&sn=6d403ab4 ...
- 5.Java基础_Java算术/字符/字符串/赋值运算符
/* 算术/字符/字符串/赋值 运算符 */ public class OperatorDemo01 { public static void main(String[] args){ //算术运算符 ...
- CAS你知道吗?原子类AtomicInteger的ABA问题谈谈?
(1)CAS是什么? 比较并交换 举例1, CAS产生场景代码? import java.util.concurrent.atomic.AtomicInteger; public class CA ...
- 2、zabbix3.4的安装
系统版本:centos7 数据库版本:mysql二进制安装5.7 zabbix:阿里云安装3.4 一.Zabbix的安装 Zabbix3.4版本官方安装手册链接:https://www.zabbix. ...
- linux下C/C++编译时系统搜索 include 和 链接库 文件路径的指定
C/C++程序在linux下被编译和连接时,GCC/G++会查找系统默认的include和link的路径,以及自己在编译命令中指定的路径.自己指定的路径就不说了,这里说明一下系统自动搜索的路径. ...
- 内网Metasploit映射到外网
下载frp Github项目地址:https://github.com/fatedier/frp 找到最新的releases下载,系统版本自行确认. 下载方法: wget https://github ...
- 谈谈vue.js中methods watch和compute的区别和联系
methods,watch和computed都是以函数为基础的,但各自却都不同: 1.watch和computed都是以Vue的依赖追踪机制为基础的,它们都试图处理这样一件事情:当某一个数据(称它为依 ...
- Ubuntu 安装git及git命令
1.检查git是否已经安装,输入git version命令即可,如果没有显示版本号表示没有安装git 2.安装git sudo apt-get install git 3.配置git全局环境git c ...
- gradle 多模块Springboot项目 compile project引用其他模块的坑
本来以为子项目中compile project(':xxx'),就能引用其他模块了,因为之后idea也没在引用时候标红 然而我gradle build的时候,居然各种找不到引用模块的类 最后在stac ...