Java面试问题之三十六_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > Java面试问题之三十六

Java面试问题之三十六

 2011/9/19 21:00:00  YuHuang.Neil  http://yuhuang-neil.iteye.com  我要评论(0)
  • 摘要:请谈谈你对Java后台线程的理解以及它有和特点。答:所谓的后台线程就是指为其他线程服务的线程,也称为守护线程。比如,Java虚拟机中的垃圾回收线程就是典型的后台线程,它负责回收其他线程不再使用的内存资源。后台线程的特点是:后台线程与前台线程相伴相随,通常情况下只有所有前台线程都结束生命周期,后台线程才会结束生命周期。只要有一个前台线程还没有运行结束,后台线程就不会结束生命周期。主线程在默认情况下是前台线程,由前台线程创建的线程在默认情况下也是前台线程。调用Thread类的setDaemon
  • 标签:面试 Java面试 Java 问题 面试问题
请谈谈你对Java后台线程理解以及它有和特点。

答:所谓的后台线程就是指为其他线程服务的线程,也称为守护线程。比如,Java虚拟机中的垃圾回收线程就是典型的后台线程,它负责回收其他线程不再使用的内存资源。后台线程的特点是:后台线程与前台线程相伴相随,通常情况下只有所有前台线程都结束生命周期,后台线程才会结束生命周期。只要有一个前台线程还没有运行结束,后台线程就不会结束生命周期。主线程在默认情况下是前台线程,由前台线程创建的线程在默认情况下也是前台线程。调用Thread类的setDaemon(true)方法,就可以把一个线程设置为后台线程。Thread类的isDaemon()方法用来判断一个线程是否是后台线程。


知识扩展:
在使用Java后台线程时,应该非常注意以下几点:
(1)Java虚拟机所能保证的是,当所有前台线程都运行结束时,如果后台线程还在运行,Java虚拟机就会终止后台线程。此外,后台线程是否一定要在前台线程之后结束生命周期,还要取决于程序的实现。
(2)只有在线程启动前,也就是说在调用start()方法之前,才能把一个线程设置为后台线程。如果线程启动以后再调用这个线程的setDaemon(true)方法,则会抛出IllegalThreadStateException异常
(3)通常情况下,由前台线程创建的新线程默认情况下依然是前台线程,而由后台线程创建的线程在默认的情况下依然是后台线程。



发表评论
用户名: 匿名