java结束线程的方式

java中结束线程当前推荐的唯一方式就是调用

1. Thread.interrupt(),所有线程池的shutdownNow,Future的cancel(true)方法内部都是调用了interrupt方法,在被中断线程的while循环里用

interrupted()方法判断该标志位,注意,若线程sleep时,该方法可以打断sleep并抛出 InterruptedException异常并且将interrupted标志位设成false,每调用一次检查该标志位的方法,对应标志位也会重置

2. interrupt方法只能中断sleep的线程阻塞,对io阻塞与synchronized阻塞无效

3. 对应io阻塞可以调用对应io的close方法,其会使得阻塞io抛出异常,以此方式中断阻塞

4. 对应同步加锁阻塞,建议使用ReentrantLock的lockInterruptibly()方法,他是可以被打断的

5. 线程协同对应的wait方法也会响应interrupt异常并解除阻塞

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值