(4)进程---daemon守护线程和join阻塞
join ()方法:主线程A中,创建了子线程B,并且在主线程A中调用了B.join(),那么,主线程A会在调用的地方等待,直到子线程B完成操作后,才可以接着往下执行,那么在调用这个线程时可以使用被调用线程的join方法
join 等待所有子进程执行完毕之后,主进程在向下执行
(1) 1个子进程通过join加阻塞,进行同步控制,放在主程序之前
(2)多个子进程通过join加阻塞,把进程加入列表,进行同步控制
#守护,无join
#------------------主线程运行正常结束,子线程强制结束--------------------------------#
#非守护,无join
#------------------主线程正常结束-----------子线程运行正常结束(结束顺序不一定)--------------------
#守护,join(阻塞)
#------------------子线程运行正常结束-----------主线程正常结束--------------------------------#
#非守护,join(阻塞)
#------------------子线程运行正常结束-----------主线程正常结束--------------------------------#
p.daemon = True#注意一个线程默认不是守护线程,也就是说默认值是False
#结论:
#☆☆☆对于含有join的代码而言,一定有主线程在子线程之后才执行完。
#☆☆☆对于没有join的代码而言:如果守护,只要主线程关闭,子线程及时没执行完也必须关闭,;
# 如果非守护,主线程与子线程结束顺序不一定
p.start()
# p.join()#(挡住,无法执行join以后的语句)
守护进程(daemon)
可以给子进程贴上守护进程的名字,该进程会随着主进程代码执行完毕而结束
(实际为主进程守护)
(1)守护进程会在主进程代码执行结束后就终止
(2)守护进程内无法再开启子进程,否则抛出异常(了解)
(3)正常情况下,主进程默认等待子进程全部结束而结束
(4)守护进程必须写在start之前进行设置
语法:
p.daemon = True
p.start()
(5) 当多个子进程并发执行时,默认主进程等待子进程
守护进程 守护的是 主进程 , 主要主进程里面的代码执行完毕
对应是守护进程的那个子进程立即终止,其他非守护进程继续
守护进程是主进程的代码执行到最后一行了,即为结束。
(6) 守护进程的实际用途:报活
如果最大的监控系统挂掉,就让其他服务器停掉
就好比厂子倒闭了,员工回家放假
import time
from multiprocessing import Process def alive():
while True:
print('1号主机发送日志消息,iam ok!')
time.sleep(5)
def func():
while True:
print('统计各个主机的系统日志,维护数据库管理')
time.sleep(5)
if __name__ == '__main__':
p = Process(target=alive)
p.daemon = True
p.start()
p = Process(target=func)
p.start()
p.join() # 加上join之后,等待所有子进程执行完毕后,在运行主进程后面的代码
print('............')
1号主机发送日志消息,iam ok!
统计各个主机的系统日志,维护数据库管理
1号主机发送日志消息,iam ok!
统计各个主机的系统日志,维护数据库管理
1号主机发送日志消息,iam ok!
统计各个主机的系统日志,维护数据库管理
1号主机发送日志消息,iam ok!
统计各个主机的系统日志,维护数据库管理
1号主机发送日志消息,iam ok!
统计各个主机的系统日志,维护数据库管理
1号主机发送日志消息,iam ok!
统计各个主机的系统日志,维护数据库管理
(4)进程---daemon守护线程和join阻塞的更多相关文章
- 015.4守护线程和join
内容:守护线程.join方法#####################守护线程通过开启线程之前调用setDaemon()方法,变成后台线程,前台线程运行完,后台线程自动会结束#########例子 c ...
- join和 Daemon守护线程
一.前言 一个程序至少有一个主线程,主线程启动子线程后,它们之间并没有隶属关系.主线程和子线程执行是并行的,相互独立.主线程执行完毕后默认不等子线程执行结束就接着往下走了,如果有其他程序就会运行另外的 ...
- python基础-守护进程、守护线程、守护非守护并行
守护进程 1.守护子进程 主进程创建守护进程 其一:守护进程会在主进程代码执行结束后就终止 其二:守护进程内无法再开启子进程,否则抛出异常:AssertionError: daemonic pro ...
- 守护进程vs 守护线程
# #守护进程 from multiprocessing import Process import os,time,random def task(): print('%s is running' ...
- Python 开启线程的2中方式,线程VS进程(守护线程、互斥锁)
知识点一: 进程:资源单位 线程:才是CPU的执行单位 进程的运行: 开一个进程就意味着开一个内存空间,存数据用,产生的数据往里面丢 线程的运行: 代码的运行过程就相当于运行了一个线程 辅助理解:一座 ...
- 守护进程VS守护线程
守护(daemon)进程 引入: join()方法可以使一个进程运行完之后再执行下一个进程,而daemon()方法就是主进程的代码执行完毕之后,不需要等待子进程,立即终止子进程. join()方法和d ...
- [Linux] 守护进程和守护线程
对于JAVA而言,一般一个应用程序只有一个进程——JVM.除非在代码里面另外派生或者开启了新进程. 而线程,当然是由进程开启的.当开启该线程的进程离开时,线程也就不复存在了. 所以,对于JAVA而言, ...
- java 多线程:Thread类常用方法:setPriority优先级、interrupt中断标记、suspend暂停与唤醒resume(已过时);daemon守护线程
常用方法: boolean isAlive() 测试此线程是否存活. boolean isDaemon() 测试此线程是否为守护程序线程. static void sleep?(long millis ...
- Java:多线程<四> Lock、停止线程、守护线程、join、优先级&yield
Java1.5以后,Condition将Object监视器方法(wait, notify, notifyAll)分解成截然不同的对象,以便通过这些对象与任意Lock实现组合使用为每个对像提供多个等待s ...
随机推荐
- "添加与删除程序"报rundll32错误
无法启动"添加与删除程序"系统报rundll32错误 系统反馈以下信息: rundll32.exe应用程序错误"0x00310030"指令 解决方法: 1.启动 ...
- Codeforces Round #425 (Div. 2) Problem C Strange Radiation (Codeforces 832C) - 二分答案 - 数论
n people are standing on a coordinate axis in points with positive integer coordinates strictly less ...
- tar+nc传输文件的使用
- [内核驱动] miniFilter 内核层与应用程序通信
转载:http://blog.csdn.net/heyabo/article/details/8721611 转载:http://www.cnblogs.com/ljinshuan/archive/2 ...
- 盛世狂欢意犹未尽之恋舞OL折扣平台多角度体验
2018国民级时尚音乐舞蹈手游<恋舞OL>,女生都爱玩的手机游戏.画风Q萌的3D音乐舞蹈手游,多人同时在线,玩法轻松休闲,浪漫场景自由社交互动,恋上指尖舞蹈. 小编看了上述介绍之后,感觉已 ...
- linux --- 4. 虚拟环境
一.虚拟环境的两种安装方式 1. virtualenv 虚拟环境 ①下载 virtualenv pip3 install -i https://pypi.tuna.tsinghua.edu.cn/s ...
- linux --- 3 vim 网络 用户 权限 软连接 压缩 定时任务 yum源
一.vi 和vim vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方. vim 则可以说是程序开发者的一项很好用的工具 ①命令模式 移动光标 w(e) 移动光标到下一个单词 b ...
- spring配置jax-ws
在spring配置文件中新建bean(或者是在配置文件中添加bean),在该bean中添加指定的访问地址. @Bean public static SimpleJaxWsServiceExporter ...
- Linux 双向 SSH 免密登录
原理 双向,顾名思义,双方互通,此处的意思是多台 linux 两两免密登录.双向比单向多了些操作,单向只需把某一个linux的公钥发送给其他linux即可,而双向要实现集群中的每一台机器都保存其他所有 ...
- 日志统计 尺取法【蓝桥杯2018 C/C++ B组】
标题:日志统计 小明维护着一个程序员论坛.现在他收集了一份"点赞"日志,日志共有N行.其中每一行的格式是: ts id 表示在ts时刻编号id的帖子收到一个"赞" ...