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阻塞的更多相关文章

  1. 015.4守护线程和join

    内容:守护线程.join方法#####################守护线程通过开启线程之前调用setDaemon()方法,变成后台线程,前台线程运行完,后台线程自动会结束#########例子 c ...

  2. join和 Daemon守护线程

    一.前言 一个程序至少有一个主线程,主线程启动子线程后,它们之间并没有隶属关系.主线程和子线程执行是并行的,相互独立.主线程执行完毕后默认不等子线程执行结束就接着往下走了,如果有其他程序就会运行另外的 ...

  3. python基础-守护进程、守护线程、守护非守护并行

    守护进程 1.守护子进程 主进程创建守护进程  其一:守护进程会在主进程代码执行结束后就终止  其二:守护进程内无法再开启子进程,否则抛出异常:AssertionError: daemonic pro ...

  4. 守护进程vs 守护线程

    # #守护进程 from multiprocessing import Process import os,time,random def task(): print('%s is running' ...

  5. Python 开启线程的2中方式,线程VS进程(守护线程、互斥锁)

    知识点一: 进程:资源单位 线程:才是CPU的执行单位 进程的运行: 开一个进程就意味着开一个内存空间,存数据用,产生的数据往里面丢 线程的运行: 代码的运行过程就相当于运行了一个线程 辅助理解:一座 ...

  6. 守护进程VS守护线程

    守护(daemon)进程 引入: join()方法可以使一个进程运行完之后再执行下一个进程,而daemon()方法就是主进程的代码执行完毕之后,不需要等待子进程,立即终止子进程. join()方法和d ...

  7. [Linux] 守护进程和守护线程

    对于JAVA而言,一般一个应用程序只有一个进程——JVM.除非在代码里面另外派生或者开启了新进程. 而线程,当然是由进程开启的.当开启该线程的进程离开时,线程也就不复存在了. 所以,对于JAVA而言, ...

  8. java 多线程:Thread类常用方法:setPriority优先级、interrupt中断标记、suspend暂停与唤醒resume(已过时);daemon守护线程

    常用方法: boolean isAlive() 测试此线程是否存活. boolean isDaemon() 测试此线程是否为守护程序线程. static void sleep?(long millis ...

  9. Java:多线程<四> Lock、停止线程、守护线程、join、优先级&yield

    Java1.5以后,Condition将Object监视器方法(wait, notify, notifyAll)分解成截然不同的对象,以便通过这些对象与任意Lock实现组合使用为每个对像提供多个等待s ...

随机推荐

  1. Centos7编译安装zabbix-4.0.1

    架构组合:nginx1.9.10+php7.0.32+mysql5.7.22+zabbix4.0.1 nginx1.9.10 先装依赖 openssl-1.1.0f tar zxvf openssl- ...

  2. python简说(二十)操作excel

    一.pip install xlrdpip install xlwtpip install xlutils 二.写excel import xlwtbook = xlwt.Workbook() #新建 ...

  3. promql查询表达式

    Basics 即时矢量选择器 =:匹配与标签相等的内容!=:不匹配与标签相等的内容=~: 根据正则表达式匹配与标签符合的内容!~:根据正则表达式不匹配与标签符合的内容 示例: http_request ...

  4. bzoj 2527 Meteors - 整体二分 - 树状数组

    Description Byteotian Interstellar Union (BIU) has recently discovered a new planet in a nearby gala ...

  5. 尚硅谷面试第一季-15Mysql什么时候建索引

    课堂重点: MySQL的官方定义: 索引的优势: 索引的劣势: 那些情况下需要建立索引: 那些情况下不要建立索引: 何为过滤性:例如在数据库字段里,手机号/身份证号这些字段是过滤性好的字段,而性别则是 ...

  6. 尚硅谷面试第一季-11MyBatis中当实体类中的属性名和表中的字段名不一样怎么办

    问题: MyBatis中当实体类中的属性名和表中的字段名不一样 ,怎么办 ? 解决方案: 1.写sql语句时起别名 <!-- id属性:必须是接口中方法的方法名 resultType属性:必须是 ...

  7. orm查询存在价格为空问题

    明明写的没错还是查不到 打印一下sql语句: 解决办法: 把数字变成字符串格式 所以涉及金融计算,涉及小数啊,要求特别精确的,我们用字符串存储.

  8. P2042 [NOI2005]维护数列

    思路 超级恶心的pushdown 昏天黑地的调 让我想起了我那前几个月的线段树2 错误 这恶心的一道题终于过了 太多错误,简直说不过来 pushup pushdown 主要就是这俩不太清晰,乱push ...

  9. LuoguP5221 Product

    题目地址 题目链接 题解 注,下方\((i,j)\)均指\(gcd(i,j)\),以及证明过程有一定的跳步,请确保自己会莫比乌斯反演的基本套路. 介绍本题的\(O(n)\)和\(O(n\sqrt{n} ...

  10. P3317 [SDOI2014]重建

    思路 变元矩阵树定理可以统计最小生成树边权积的和,将A矩阵变为边权,D变为与该点相连的边权和,K=D-A,求K的行列式即可 把式子化成 \[ \begin{align}&\sum_{T}\pr ...