心有多大舞台便有多大

Embrace changes, pursue excellence, share niceness.

学习:Thread的setDaemon方法

setDaemon方法把java的线程设置为守护线程,此方法的调用必须在线程启动之前执行。只有在当前jvm中所有的线程都为守护线程时,jvm才会退出。
如果创建的线程没有显示调用此方法,这默认为用户线程。
下面是一个示例代码:

public class TestThreadDaemonMethod {

 /**
  * @param args
  */
 public static void main(String[] args) {
        TestThread t = new TestThread("test thread");
        //如果设置为false,那么在执行完后面的start方法后,jvm不会退出
        t.setDaemon(false);
        //如果设置为true,则执行完后面的start方法后,jvm会退出
        t.setDaemon(true);
        t.start();
        //在start之后设置daemon会抛出异常
        //t.setDaemon(true);
        if (t.isDaemon()) {
            System.out.println("test thread is a daemon.");
        }
}
}

class TestThread extends Thread {
        private String name;
 
        public TestThread(String name) {
            this.name = name;
        }
 
        /* (non-Javadoc)
         * @see java.lang.Thread#run()
        */
        public void run() {
            while(true) {
                System.out.println("running " + name);
                try {
                    Thread.sleep(1);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
}

posted on 2010-03-31 15:26 pony 阅读(2140) 评论(0)  编辑  收藏 所属分类: Java


只有注册用户登录后才能发表评论。


网站导航: