/** * 守护线程 */ 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();