Java7并发编程实战(一) 线程的中断
控制线程中断的方法一般常规是定义一个布尔值,然后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
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步