interrupt()方法理解和实例

本文主要讲interrupt方法的用途和用法,还请大家往下看。

jdk中的描述是这样的:
interrupt():中断这个线程。 除非当前线程中断自身,这是始终允许的,所以调用此线程的checkAccess方法,这可能会导致抛出SecurityException 。 如果该线程阻塞的调用wait() , wait(long) ,或wait(long, int)的方法Object类,或者在join() , join(long) , join(long, int) , sleep(long) ,或sleep(long, int) ,这个类的方法,那么它的中断状态将被清除,并且将收到一个InterruptedException 。 如果该线程在可阻止在I / O操作InterruptibleChannel则信道将被关闭,该线程的中断状态将被设置,并且螺纹将收到一个ClosedByInterruptException 。 如果该线程在Selector中被阻塞,则线程的中断状态将被设置,并且它将从选择操作立即返回,可能具有非零值,就像调用了选择器的wakeup方法一样。 如果以前的条件都不成立,则该线程的中断状态将被设置。 中断不存在的线程不需要任何效果。

第一种情况它可以打断sleep(),wait(),join()阻塞的线程,案例如下
在这里插入图片描述运行结果:
在这里插入图片描述
第一种情况的打断标记是:false,表明它打断的是阻塞线程。

第二种情况:它可以打断正在运行的线程,案例运行和输出结果如下:
在这里插入图片描述
第二种情况是打断正在运行的线程,它的打断标记是true,表明打断的是运行的线程。

总结:我自己认为这个打断,就像两个人谈话,其中一个人滔滔不绝的讲着,另一个人突然有自己的想法,然后发出打断指令,被打断的人接收到指令后,分两种情况,第一种不管指令真假就是不理你,继续自己讲着;第二种情况为,在意指令的真假,为真打断,反之不打断。自己也可以打断自己的线程。个人理解是这样,如有不同的,私信可以讨论研究研究。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值