简单的守护线程demo

/**
 * 守护线程
 */
static class Daemon implements Runnable {
   List<Runnable> tasks = new ArrayList<Runnable>();
   private Thread thread;
   private int time;

   public Daemon(Thread r, int t) {
      thread = r;
      time = t;
   }

   public void addTask(Runnable r) {
      tasks.add(r);
   }

   @Override
   public void run() {
      while (true) {
         try {
            Thread.sleep(time * 1000);
         } catch (InterruptedException e) {
            e.printStackTrace();
         }
         thread.interrupt();
      }
   }

}

调用:

//任务线程
Thread t = new Thread(runnable);
//守护线程
Daemon daemon = new Daemon(t, 120);//120秒超时时间
Thread daemoThread = new Thread(daemon);
daemoThread.setDaemon(true);
//执行这两个线程
t.start();
daemoThread.start();

猜你喜欢

转载自blog.csdn.net/weixin_39270764/article/details/80125408