楼主的问法让我有点迷糊……属于main方法的线程和Java虚拟机的退出有什么关系呢……
所谓守护线程,就相当于为你的操作提供服务的线程
举个例子吧,你可以把Java虚拟机运行的过程想象成餐厅营业的过程
当餐厅来了顾客以后,餐厅就正式开始营业,其间服务员会为顾客服务
当餐厅里的顾客走光了以后,也就是只剩下服务员的时候,餐厅就会停止营业
在这里,你就可以把顾客看作是非守护线程,服务员看做是守护线程
当所有的非守护线程都退出了之后,也就是只剩下守护线程的时候,Java虚拟机退出
在Java中,守护线程指的其实就是一些内存回收,垃圾清理之类的线程
而你在这里提出的属于main方法的线程,它属于主线程,所以当然不算守护线程
所以,只有当属于main方法的线程退出之后,Java虚拟机才会退出
而不能说Java虚拟机退出之后,属于main方法的线程会不会退出
这样解释是否清楚了呢? |