关于JAVA中一个线程是否为Daemon的。
java虚拟机只有所有运行的线程为后台线程时退出。这就是说我们创建一个线程,如果将它设置成daemon的,那么即使它还在执行,虚拟机在完成其他任务后也会退出。
测试代码:
1 package org.foo.go; 2 class Go { 3 public static void main(String[] args) 4 { 5 Thread myThread = new Thread (){ 6 public void run() 7 { 8 while(true) 9 { 10 try { 11 Thread.sleep(1000); 12 } catch (InterruptedException e) { 13 // TODO Auto-generated catch block 14 e.printStackTrace(); 15 } 16 System.out.print("I'm alive!"); 17 } 18 } 19 }; 20 myThread.setDaemon(true); 21 myThread.start(); 22 23 } 24 }
如果注释掉第20行,那么这个程序将一直运行下去,如果有20行,这个程序将很快结束。
另外需要注意的是,需要在一个线程启动前来设置它是否为daemon的。