package mutilThreadDemo; import org.junit.Test; import java.text.SimpleDateFormat; import java.util.Date; /** * Created by damon on 2017/10/17. */ public class App3 { /** * 中断 */ @Test public void testInterrupte()throws Exception{ Thread r = new Thread(){ public void run(){ try { SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); for (int i = 0; i < 100; i++) { System.out.printf("%s:%s--Running!times:%srn", df.format(new Date()), this.getName(), i); } }catch (Exception e){} } }; r.start(); r.interrupt(); System.out.println("interrupt execute"); System.out.printf("%s:is Interrupted %srn",r.getName(), r.isInterrupted()); System.out.printf("%s:is Interrupted %srn",r.getName(), r.isInterrupted()); Thread.currentThread().interrupt(); System.out.printf("%s:is Interrupted %srn",Thread.currentThread().getName(), Thread.interrupted()); System.out.printf("%s:is Interrupted %srn",Thread.currentThread().getName(), Thread.interrupted()); Thread.sleep(6000); } /** * 中断 */ @Test public void testStopThread()throws Exception{ SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Thread r = new Thread(){ public void run(){ try { for (int i = 0; i < 100; i++) { System.out.printf("%s:%s--Running!times:%srn", df.format(new Date()), this.getName(), i); if(this.interrupted()) { System.out.println("I am interrupted,I will exitrn"); break; } } }catch (Exception e){} } }; Thread r1 = new Thread(){ public void run(){ try { for (int i = 0; i < 100; i++) { System.out.printf("%s:%s--Running!times:%srn", df.format(new Date()), this.getName(), i); if(this.interrupted()) { System.out.println("I am interrupted,I will exitrn"); throw new InterruptedException("线程中断结束运行"); } } }catch (Exception e){ e.printStackTrace(); } } }; Thread r2 = new Thread(){ public void run(){ try { System.out.printf("%s:%s--I am sleep!rn", df.format(new Date()), this.getName()); Thread.sleep(20000); }catch (Exception e){ e.printStackTrace(); } } }; r.start(); Thread.sleep(2); r.interrupt(); Thread.sleep(2000); r1.start(); Thread.sleep(3); r1.interrupt(); Thread.sleep(2000); r2.start(); try { Thread.sleep(200); r2.interrupt(); }catch (InterruptedException ex){ System.out.printf("%s:%s--Interrupted Exception!rn", df.format(new Date()), r2.getName()); } Thread.sleep(2000); System.out.println("main end"); } }