黑马程序员技术交流社区

标题: 线程守护 [打印本页]

作者: 夕阳游子    时间: 2015-9-7 21:49
标题: 线程守护
守护线程:
       一个线程可以调用void setDaemon(Boolean on)方法,将自己设置称为一个守护线程,如:
thread.setDaemon(ture);想默认实非守护的,也称为用户线程。当程序中的所有线程都已结束运行时,即使守护线程中的run()方法还有需要执行的语句,守护线程也立刻结束运行。一般,用守护线程做一些不是很严格的事情,线程的随时结束不会产生什么不良的结果,一个线程必须在运行之前设置自己是否为守护线程。
public class Deamon implements Runnable {
       Thread A,B;
       public Deamon() {
              A = new Thread(this);
              B = new Thread(this);
       }
       public void run() {
              if (Thread.currentThread() == A) {
                     for (int i = 0; i < 8; i++) {
                            System.out.println("i="+i);
                            try {
                                   Thread.sleep(1000);
                            } catch (Exception e) {
                                   e.printStackTrace();
                            }
                     }
              } else {
                     while(true){
                            System.out.println("线程B是守护线程!");
                            try {
                                   Thread.sleep(1000);
                            } catch (Exception e) {
                                   e.printStackTrace();
                            }
                     }
              }
       }
}

public class TestDeamon {
       public TestDeamon() {
       }
       public static void main(String[] args) {
              Deamon a = new Deamon();
              a.A.start();
              a.B.setDaemon(true);
              a.B.start();
       }
}





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