深入理解Java多线程学习笔记-守护线程
2018-05-28 12:43
316 查看
在Java中有两种线程:一种是普通线程,另一种是守护线程
守护线程:顾名思义就是守护的线程,它是为非守护线程服务的线程。
JVM虚拟机正常退出的时机就是系统中不存在非守护线程的时候,也就是说系统中不存在普通线程时虚拟机退出而不管守护线程是否还在运行
生活场景举例:普通线程相当于是主人,守护线程就是保姆,保姆是为了主人服务的。当主人都挂了,那么保姆可以存在也可以不存在
有个同事问我的一个面试题:一个主线程,三个子线程,9个守护线程,他们停止的顺序时什么?
答:我们理解了上面讲的虚拟机退出时机再结合生活场景的例子,很容易就能搞明白这个问题!主线程相当于家庭、子线程相当于主人、守护线程相当于保姆或者是奴才,那么当我们的主人挂了,保姆可能还要继续打扫房子,但是房子也坏了消失了,那么保姆或奴才也就没必要存在了。所以说守护线程是最后才会停止的。那么主线程和子线程是谁先停止呢?这个其实很简单,我们想想,在一个main方法中启动一个线程打印一条语句,那么只有当这个线程停止之后,控制台的那个红色框才会置灰,也就是说main线程才会死亡。那么这个问题的答案就是:子、主、守护
相关文章推荐
- Java多线程学习笔记——从Java JVM对多线程数据同步的一些理解
- Java 多线程学习笔记 线程通讯 wait notify notifyAll的理解
- Java多线程高并发学习笔记(二)——深入理解ReentrantLock与Condition
- Java多线程学习笔记——从Java JVM对多线程数据同步的一些理解
- [原]Java多线程编程学习笔记之一:线程中断(含代码)
- Java并发学习笔记(16)守护线程,线程组
- 多线程学习之深入理解Java多线程与并发编程
- java 多线程学习笔记之进程和线程
- 0038 Java学习笔记-多线程-传统线程间通信、Condition、阻塞队列、《疯狂Java讲义 第三版》进程间通信示例代码存在的一个问题
- Java并发编程学习笔记 深入理解volatile关键字的作用
- JAVA学习笔记--多线程(二)线程常用方法
- 【Java】深入理解JVM学习笔记(二) —— 对象
- 【深入理解Java虚拟机学习笔记】虚拟机类加载机制
- 深入理解Java虚拟机—学习笔记(1)Java内存区域与内存溢出异常
- 学习深入理解java虚拟机笔记--对象已死吗
- Java多线程学习笔记—线程停止
- 《Java编程思想_ 深入理解java虚拟机_Thinking in java__Effiect java__设计模式》学习笔记7——泛型编程基础
- Java学习笔记之深入理解关键字super
- Java守护线程的理解笔记
- Java学习笔记之深入理解关键字final