(2)守护线程

JVM程序退出

当只有守护线程运行的时候,JVM的进程会退出。即使有一个非守护线程在运行,JVM程序也会在运行。

守护线程

守护线程为在后台默默执行的线程。

线程是否为守护线程和它的父线程有很大的关系,如果父线程是正常线程,则子线程也是正常线程,反之亦然。

可通过 setDaemon 方法设置为守护线程,该方法只在线程启动之前才能生效。

线程的父子关系

  1. 一个线程的创建肯定是由另一个线程完成的。
  2. 被创建线程的父线程是创建它的线程。

如果创建线程未指定线程组,会加入父类所在线程组。

JVM虚拟机

JVM内存结构图

  1. 程序计数器:每个线程有其单独的程序计数器,其作用就是用于存放当前线程接下来将要执行的字节码指令、分支、循环、跳转、异常处理等信息。
  2. Java虚拟机栈:也是线程私有,生命周期与线程相同。方法在执行的时候都会创建一个名为栈帧的数据结构,主要用来存放局部变量表、操作栈、动态链接、方法出口等信息,方法的调用对应着栈帧在虚拟机栈中的压栈和弹栈的过程。每一个线程在创建的时候,JVM都会为其创建对应的虚拟机栈,虚拟机栈的大小可以通过-xss来配置。
  3. 本地方法栈:调用本地方法的接口。也是线程私有的内存区域。
  4. 堆内存:堆内存是JVM中最大的一块内存区域,被所有的线程所共享,Java在运行期间创建的所有对象几乎都存放在该内存区域,该内存区域也是垃圾回收器重点照顾的区域。
  5. 方法区:被多个线程所共享的内存区域,主要用于存储已经被虚拟机加载的类信息、常量、静态变量、即使编译器编译后的代码等数据。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值