Java Thread类的interrupted和isInterrupted的区别

Thread对象.interrupt()方法设置线程的中断状态为true,并且可以用来中断一个正处于阻塞状态(调用了sleep,wait,join方法)的线程,使得处于阻塞状态的线程抛出一个InterruptedException异常,但jvm会重新将线程的中断标志重新设置为false

Thread.interrupted()方法是返回当前线程的中断状态,并且当前线程的中断状态被方法内部清除(如果原来是true则恢复为false,再次调用时返回的就是false了)。这也说明只有当前线程才能清除自己的中断位。

Thread对象.isInterrupted()方法可以查询任意线程对象的中断状态,并且不会清空该线程的中断状态。


interrupted()和isInterrupted()这两个方法调用的是Thread类的本地方法,只不过ClearInterrupted(是否要清除状态位参数值不同:

private native boolean isInterrupted( boolean ClearInterrupted);


参考自:http://www.cnblogs.com/w-wfy/p/6414801.html


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值