你的位置:首页 > 软件开发 > Java > [javaSE] 多线程(守护线程)

[javaSE] 多线程(守护线程)

发布时间:2016-06-08 20:00:10
我们一般使用多线程,都是while的死循环,想要结束线程,只需退出死循环即可当线程中调用了sleep()方法或者wait()方法,当前的线程就会进入冻结状态,这个线程就结束不了 调用Thread对象的interrupt()方法,可以强制解冻,此时run()方法中需要捕获到In ...

我们一般使用多线程,都是while的死循环,想要结束线程,只需退出死循环即可

当线程中调用了sleep()方法或者wait()方法,当前的线程就会进入冻结状态,这个线程就结束不了

 

调用Thread对象的interrupt()方法,可以强制解冻,此时run()方法中需要捕获到InterruptException异常,然后进行处理,就可以关闭线程了

 

调用Thread对象的setDaemon()方法,参数:true

守护线程是后台线程,当前台线程全都结束以后,后台线程自动结束

class Ticket implements Runnable {  private int nums = 100;  @Override  public void run() {    while (true) {      synchronized (this) {        if (nums > 0) {          try {            Thread.sleep(100);          } catch (Exception e) {            e.printStackTrace();          }          System.out.println(Thread.currentThread().getName() + "==="              + (nums--));        }else{          break;        }      }    }  }}public class TicketDemo {  /**   * @param args   */  public static void main(String[] args) {    Ticket ticket = new Ticket();    Thread t1=new Thread(ticket);    Thread t2=new Thread(ticket);    t1.setDaemon(true);    t2.setDaemon(true);    t1.start();    t2.start();        //主线程执行1秒就结束,其他守护线程还没走完也会结束    while(true){      try {        Thread.sleep(1000);        break;      } catch (Exception e) {        e.printStackTrace();      }    }  }}

原标题:[javaSE] 多线程(守护线程)

关键词:JAVA

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。