A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 夕阳游子 中级黑马   /  2015-9-7 21:49  /  252 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

守护线程:
       一个线程可以调用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();
       }
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马