关于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的。

posted @ 2012-11-08 17:39  mark_xue  阅读(505)  评论(0编辑  收藏  举报