你的位置:首页 > 软件开发 > Java > JAVA多线程之中断机制(如何处理中断?)

JAVA多线程之中断机制(如何处理中断?)

发布时间:2016-05-01 18:00:22
一,介绍这篇文章主要记录使用 interrupt() 方法中断线程,以及如何对InterruptedException进行处理。感觉对InterruptedException异常进行处理是一件谨慎且有技巧的活儿。由于使用stop()方法停止线程非常的暴力,人家线程运行的好好的,突 ...

一,介绍

这篇文章主要记录使用 interrupt() 方法中断线程,以及如何对InterruptedException进行处理。感觉对InterruptedException异常进行处理是一件谨慎且有技巧的活儿。

由于使用stop()方法停止线程非常的暴力,人家线程运行的好好的,突然就把人家杀死了,线程占用的锁被强制释放,极易导致数据的不一致性。可参考这篇文章对stop()方法的介绍。

因此,提出了一种温和的方式:请求另外一个线程不要再执行了,这就是中断方式。

 

二,中断及如何响应中断?

如何优雅地响应中断真的是太高深了,看到这篇文章:Java 理论与实践: 处理 InterruptedException就吓了一跳。下面只是记录一些最简单的我对响应中断的理解。

假设某个线程要不停地处理某件事情(比如 i 一直自增),但是还有个要求:在处理事情前,先要检查下这个线程是否被中断,如果已经被中断,处理就应该结束。

下面是一些例子,这些例子摘自《JAVA多线程核心编程技术》

 1 public class Run { 2  3   public static void main(String[] args) { 4     try { 5       MyThread thread = new MyThread(); 6       thread.start(); 7       Thread.sleep(2000); 8       thread.interrupt();//请求中断MyThread线程 9     } catch (InterruptedException e) {10       System.out.println("main catch");11       e.printStackTrace();12     }13     System.out.println("end!");14   }15 }

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:JAVA多线程之中断机制(如何处理中断?)

关键词:JAVA

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。