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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 周兴华 中级黑马   /  2012-8-26 15:54  /  2486 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在Thread类中setDaemon(boolean on)方法中,如果参数on为true的话,则将该线程标记为守护线程。
问题是,如果参数on为false的话,该线程被标记成什么样的线程了呢?
在API手册中可以看到对setDaemon方法的描述是将该线程标记为守护线程或用户线程。当正在运行的线程都是守护线程时,Java 虚拟机退出。
那么参数on为false的话,是不是就是说将线程设置成了用户线程?
因为API手册中没有明确地说明,另外老毕的视频也只讲到了守护线程,所以我有这样的疑问,还有就是守护线程和用户线程有什么区别?

9 个回复

倒序浏览
中断吧,没试过!
回复 使用道具 举报
中断吧,没试过!至于守护线程与用户线程有什么区别?我想应该是每个人的叫法吧,有一点我可以确定,这一定有故事!
回复 使用道具 举报
中断吧,没试过!至于守护线程与用户线程有什么区别?我想应该是每个人的叫法吧,有一点我可以确定,这一定有故事!
回复 使用道具 举报
一下回答了3,不好意思!

点评

你真幽默啊  发表于 2012-8-26 16:22
回复 使用道具 举报
全海波 发表于 2012-8-26 15:59
一下回答了3,不好意思!

呵呵,还行吧!
回复 使用道具 举报
有没有明白的大神啊!
回复 使用道具 举报
这个我在tomcat里试过,如果想在servlet里面启动一个服务器线程,不设为守护线程的话,那么Tomcat启动不了
回复 使用道具 举报
关于这个问题,我在别的地方查找的结果是这样的。
Java中的线程分为两类:一种是用户线程,一种是守护线程。我们在视频中学习的那些例子里面的线程都是用户线程。
守护线程是一种“在后台提供通用性”的线程,它并不属于程序本体。从字面上容易将守护线程理解成是由虚拟机在内部创建的,而用户线程则是自己所创建的。
事实上并不是这样,任何线程都可以使“守护线程”或“用户线程”。它们在几乎每个方面都是相同的,唯一的区别是判断虚拟机何时离开。
用户线程:Java虚拟机在它所有非守护线程都已经离开后自动离开。
守护线程:守护线程是用来服务用户线程的,如果没有其他用户线程在运行,那么就没有可服务对象,也就没有理由继续下去了。
毕老师在视频中用了个很生动的例子就是,圣斗士中星矢、紫龙他们就是守护线程,雅典娜是用户线程,当雅典娜退出时,星矢他们没了可守护的对象也就跟着退出了。
Thread类中setDaemon(boolean on)方法中,参数on为true的话,则将该线程标记为守护线程,参数on为false的话,则将线程标记为用户线程。
回复 使用道具 举报
我也学习一下
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马