/** * 守護線程 */ 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();