设为首页 加入收藏

TOP

Java中断和线程结束深入探讨
2014-11-24 12:05:04 来源: 作者: 【 】 浏览:0
Tags:Java 中断 线程 结束 深入 探讨

中断:
有软中断和硬中断之分。而硬中断多为外围设备引起而且发生多是随机的,故我们在这里只讨论java程序中的软中断,是可控的。

这里我必须要回答几个问题,然而是网上大多数文章没有回答的。
a)为什么使用中断?
b)何时使用中断?
c)中断和结束线程之间有什么关系?
d)中断是否就是结束线程?

a)在java中我们引入中断的目的是为了打断线程现在所处的某种状态,但是我们知道这种状态一定是阻塞状态;
b)上面已经说了是在线程阻塞的时候,我们想要改变它阻塞的状态,所以通常在线程sleep,wait,join的情况下我们可以使用中断;
c)由于中断可以捕获,通过这种方式我们可以结束线程;
d)中断不是结束线程,只不过发送了一个中断信号而已,线程要退出还要我们加上自己的结束线程的操作。

上面说了中断使用的情况也就是scope,那么也就说明了线程在某些情况是不可中断的,换句话说,是捕获不到中断信号的。


我们现在将中断分为两种情况:
可中断的阻塞和不可中断的阻塞

对于可中断的阻塞情况我们要怎么结束这样的线程呢?下面举个简单的例子;


四也是网上和书上讲到的对被加锁的块(synchronized方法和临界区)进行中断采用ReentrantLock可以捕获中断。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇关于Android应用设计中多余的“退.. 下一篇Android平台上使用属性系统(prope..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Libevent C++ 高并发 (2025-12-26 00:49:30)
·C++ dll 设计接口时 (2025-12-26 00:49:28)
·透彻理解 C 语言指针 (2025-12-26 00:22:52)
·C语言指针详解 (经典 (2025-12-26 00:22:49)
·C 指针 | 菜鸟教程 (2025-12-26 00:22:46)