//线程中断取消任务 Runner one = new Runner(); Thread countThread = new Thread(one,"CountThread"); countThread.start(); TimeUnit.SECONDS.sleep(1);//睡眠1秒 //Main线程对CountThread进行中断,使CountThread能够感知中断而结束 countThread.interrupt();
//boolean变量控制取消任务 Runner two = new Runner(); countThread = new Thread(two,"CountThread"); countThread.start(); TimeUnit.SECONDS.sleep(1);//睡眠1秒 two.cancel();//Main线程对Runner Two进行取消,使CountThread能够感知on为false而结束 }
privatestaticclassRunnerimplementsRunnable{ privatelong i; privatevolatileboolean on = true;
publicvoidrun(){ while (on && !Thread.currentThread().isInterrupted()) { i++; } System.out.println("i:"+i); }