控制线程中断的方法一般常规是定义一个布尔值,然后while(布尔值) 去执行,当想停止该线程时候,把布尔值设为false.
这里我们来看第二种,Interrupt
该例子模拟一个线程从1打印到10,然后到5的时候中断线程,主要在线程中捕捉
InterruptedException 异常
public class Test implements Runnable { @Override public void run() { // TODO Auto-generated method stubfor(int i=0;i<10;i++){ System.out.println("打印"+i); try { TimeUnit.SECONDS.sleep(1); } catch (InterruptedException e) { // TODO Auto-generated catch block System.out.println("线程interrupterd"); } } } }
在Main方法中进行中断
public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Test tt = new Test(); Thread thread = new Thread(tt); thread.start(); try { TimeUnit.SECONDS.sleep(5); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } thread.interrupt(); } }
打印结果
打印0 打印1 打印2 打印3 打印4 线程interrupterd 打印5 打印6 打印7 打印8 打印9
时间: 2024-10-12 13:24:19