java thread isinterrupted_Java Thread类中的interrupt(),interrupted()以及isInterrupted()

首先区分一下这三个发放的返回值,虽然他们长得都很像,但是interrupt方法是一个动作,他的返回值是void,他将调用对象的中断状态进行标记,但是不会让这个进程立即停止;与之相对的另外两个方法的返回值都是boolen类型,表示进程的是否处于中断状态

当然他们也是有区别的,interrupted()的作用是测试当前线程是否被中断(注意是当前进程),返回一个boolean值并清除中断状态,所以在不进行二次中断的情况下,第二次调用时中断状态已经被清除,将返回一个false。他的源码如下,内部实现是调用的当前线程的isInterrupted()。

d913ff42c861462e2d4446dc651ef18c.png

同时因为interrupted()是一个静态方法,所以调用的时候前面是类名,用对象去调用会返回如下提示:

bd347f2acb0dc647472fa9f87afeb5d3.png

这么调用的本来意图可能是返回线程 t1 的状态,但是实际上返回的是当前进程(也就是这个语句所在进程的状态),如果想得到 t1 的状态,应该使用isInterrupted()方法

isInterrupted()是实例方法,是调用该方法的对象所表示的那个线程的isInterrupted(),不会重置当前线程的中断状态,它的源码如下:

d396f2e5686c4d3a9062cacc0459b6f1.png

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值