黑马程序员技术交流社区

标题: 线程问题, [打印本页]

作者: 王怡然    时间: 2012-5-6 18:57
标题: 线程问题,
在API上面看到说当正在运行的线程都是守护线程时,Java 虚拟机退出.
那属于main方法的线程会不会推出呢?它不算守护线程吗?
作者: 魏涞    时间: 2012-5-6 19:02
java main方法为非守护线程(实时线程)
public static void main(String[] args) throws InterruptedException {  
    Thread t = Thread.currentThread();  
    System.out.println("Thread name:"+t.getName());  
    System.out.println("Thread.isDaemon="+t.isDaemon());;  
}  



运行结果:



Thread name:main

Thread.isDaemon=false

作者: 张小锋    时间: 2012-5-6 19:09
用户线程Java虚拟机在它所有非守护线程已经离开后自动离开。main函数就是启动的用户线程
而守护线程则是用来服务用户线程的,如果没有其他用户线程在运行,那么就没有可服务对象,也就没有理由继续下去。
作者: 谭景宾    时间: 2012-5-6 19:14
被setDaemon标记的线程才为守护线程,也可理解为后台线程。
没有被setDaemon标记的线程,可理解为前台线程
当前台线程结束时,被setDaemon标记的后台线程自动结束。

main方法的线程会不会推出呢?它不算守护线程吗?
main方法可以有多个线程,被setDaemon标记的才算守护线程
作者: 何阳    时间: 2012-5-6 19:47
只有你将这个线程定义成守护线程时,他就是后台线程。
所有的线程都结束了,不管此线程处于什么状态,都随之结束。
我们启动JVM的时候,入口是main,开启了线程,main线程是主线程,肯定是前台线程,不是守护线程。
作者: 隋营营    时间: 2012-5-6 20:18
主线程(main)是非守护线程,任何程序都是从main开始执行。可以把main线程叫用户线程。
用户线程的特点:只有当所有用户线程结束,其它线程才会结束
守护线程的特点:所有用户线程结束时自动退出






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