import java.util.concurrent.TimeUnit; /** * @author hyperglory * @date 2017/3/16 13:18 */ public class Interrupted { public static void main(String[] args) throws InterruptedException { // sleepThread不停的尝试睡眠 Thread sleepThread = new Thread(new SleepRunner(), "SleepThread"); sleepThread.setDaemon(true); // busyThread不停的运行 Thread busyThread = new Thread(new BusyRunner(), "BusyThread"); busyThread.setDaemon(true); sleepThread.start(); busyThread.start(); // 休眠5秒,让sleepThread和busyThread充分运行 TimeUnit.SECONDS.sleep(5); sleepThread.interrupt(); busyThread.interrupt(); System.out.println("SleepThread interrupt is " + sleepThread.isInterrupted()); System.out.println("BusyThread interrupt is " + busyThread.isInterrupted()); // 防止sleepThread和busyThread立刻退出 TimeUnit.SECONDS.sleep(2); } static class SleepRunner implements Runnable { @Override public void run() { while (true) { try { TimeUnit.SECONDS.sleep(10); } catch (InterruptedException e) { e.printStackTrace(); } } } } static class BusyRunner implements Runnable { @Override public void run() { while (true) { } } } }