A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 马林贺 中级黑马   /  2012-5-30 22:14  /  2418 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

   当主线程结束后,为什么守护线程在执行一段时间后才会停止呢,不是主线程一执行结束,守护线程也就跟着结束了吗?

3 个回复

倒序浏览
所谓守护线程其实是后台线程,我们在dos命令行看见的线程都是前台线程,
后台线程特点是开启后和前台线程共同抢夺cpu执行权,开启和运行没区别,就结束有区别.
但是我很不理解lz的意思,毕老师讲的时候说的就是主线程(即正在执行的线程)结束后,守护线程就结束了.

点评

看一下我发的帖子 http://bbs.itheima.com/forum.php?mod=viewthread&tid=15872&page=1#pid90097  发表于 2012-5-30 22:37
回复 使用道具 举报
按道理主线程结束,守护线程就会结束了,看了你之前的帖子,在别人的电脑里运行没问题,那应该是和电脑配置什么有关了吧,你换台电脑试试?数值范围定义小一点也没用么?
回复 使用道具 举报
本帖最后由 龚正军 于 2012-5-31 03:05 编辑

守护线程:肯定是在前台线程都结束完后(也就是在只剩下守护线程后)就会停止。
但是我希望你们了解一点是:所谓停止是该守护线程的所在程序所有飞守护线程停止后才会停止,那怕只有一个前台程序在运行,守护线程都会存在。

跟是不是主线程一点关系都没,主线程只是前台线程(你也可以叫他服务线程)的一个线程而已。(前台线程可以有n多个线程,他们只要有一个在守护线程都不会停止,而主线程只是其中之一),所以你主线程停止与否跟守护线程没多大关系。

其本质是用来服务前台线程的。--------------------------典型的守护线程就是jvm的垃圾回收线程!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马