@Test public void interrupt4b() { Thread t = new Thread() { public void run() { for (int i = 0; i < 10; i++) { if (isInterrupted()) { System.out.println("interrupted"); } else { System.out.println("not interrupted"); } } interrupt(); for (int i = 0; i < 10; i++) { if (isInterrupted()) { System.out.println("interrupted"); } else { System.out.println("not interrupted"); } } } }; t.start(); try { t.join(); } catch (InterruptedException e) { e.printStackTrace(); } // thread t's status is not alive when code executed here. System.out.println("the interrupted status while thread's status is not alive:"); for (int i = 0; i < 10; i++) { if (t.isInterrupted()) { System.out.println("interrupted"); } else { System.out.println("not interrupted"); } } if (t.isAlive()) { System.out.println("is alive"); } else { System.out.println("is not alive"); } for (int i = 0; i < 10; i++) { if (t.isInterrupted()) { System.out.println("interrupted"); } else { System.out.println("not interrupted"); } } System.out.println("the interrupted status while thread's status is not alive and call interrupt() to interrupt thread:"); t.interrupt(); for (int i = 0; i < 10; i++) { if (t.isInterrupted()) { System.out.println("interrupted"); } else { System.out.println("not interrupted"); } } }