黑马程序员技术交流社区

标题: 前台线程与后台线程的区别? [打印本页]

作者: 左华清    时间: 2012-2-19 00:25
标题: 前台线程与后台线程的区别?
本帖最后由 左华清 于 2012-2-19 12:56 编辑

请问下前台线程与后台线程有什么区别?
作者: 曾辉    时间: 2012-2-19 00:42
前台线程和后台线程的主要区别就是:应用程序必须运行完所有的前台线程才可以退出;而对于后台线程,应用程序则可以不考虑其是否已经运行完毕而直接退出,所有的后台线程在应用程序退出时都会自动结束。


作者: 何招俊    时间: 2012-2-19 09:11
只有当所有的前台线程全部执行完毕后,应用程序才能够退出。而对于后台线程,当应用程序退出的时候,后台线程会被强制终止
作者: 成果    时间: 2012-2-19 09:49
默认情况,在新开启一个子线程的时候,他是前台线程,只有,将线程的IsBackground属性设为true;他才是后台线程
         *当子线程是前台线程,则主线程结束并不影响其他线程的执行,只有所有前台线程都结束,程序结束
         *当子线程是后台线程,则主线程的结束,会导致子线程的强迫结束
后台线程一般做的都是需要花费大量时间的工作,如果不这样设计,主线程已经结束,而后台工作线程还在继续,第一有可能使程序陷入死循环,第二主线程已经结束,后台线程即时执行完成也已经没有什么实际的意义)

作者: 彭小芳    时间: 2012-2-19 10:18
后台线程:指为其他线程提供服务的线程,也称为守护线程。JVM的垃圾回收线程就是一个后台线程。

前台线程:是指接受后台线程服务的线程,其实前台后台线程是联系在一起,就像傀儡和幕后操纵者一样的关系。傀儡是前台线程、幕后操纵者是后台线程。由前台线程创建的线程默认也是前台线程。可以通过isDaemon()和setDaemon()方法来判断和设置一个线程是否为后台线程。

作者: 花开~的季节    时间: 2012-2-19 11:10
前台线程结束后天线程就必须结束,后天线程结束时,jvm退出程序,后台又称守护线程,
作者: 左华清    时间: 2012-2-19 12:57
学习了,谢谢!
作者: 最初的理想    时间: 2012-2-19 20:11
学习了{:soso_e179:}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2