java并发编程的一些小记录之interrupt

本文详细解析了Java中线程中断的处理机制。当线程被外部中断时,如果处于可中断状态,则会立即被唤醒并收到InterruptedException。此外,若线程未正确处理中断标志,则可能引发资源关闭等问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当外部线程对某线程调用了thred.interrupt()方法后,java语言的处理机制是这样的:如果该线程处在可中断状态下(调用了Thread.wait()或者Thread.sleep()等特定会发生阻塞的api),那么该线程会立即被唤醒,同时会收到一个InterruptedException,同时,如果是阻塞在IO上,对应的资源会被关闭。如果该线程接下来不执行Thread.interrupted()方法(不是interrupt),那么该线程在处理任何IO资源的时候,都会导致这些资源的关闭。当然,解决的办法就是调用一下interrupted(),不过这里需要程序员自行根据代码的逻辑来设定,根据自己的需求确认是否可以直接忽略该中断,还是应该马上退出。

详细的解释如下:java理论和时间:处理InterruptedException

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值