Java面试问题之三十六

请谈谈你对Java后台线程的理解以及它有和特点。

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


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值