关于Thread中几个方法的说明

线程中比较容易搞混淆的几个方法:
isInterrupted:
public boolean isInterrupted() {
return isInterrupted(false);
}
interrupted:
public static boolean interrupted() {
return currentThread().isInterrupted(true);
}
interrupt:
public void interrupt() ;

这三个方法都是关于线程状态的方法,线程的初始状态返回的应该是false;
interrupt方法使用于修改线程状态,此时线程的状态被修改为true
如果此时调用isInterrupted会返回true,调用静态方法interrupted也会返回true,但是
interrupted是会重置线程状态,贴代码说明:
Thread current = Thread.currentThread();
current.interrupt();
System.out.println(Thread.interrupted());
System.out.println(current.isInterrupted());

此时控制台输出:true,false;
如果改变代码顺序:
Thread current = Thread.currentThread();
current.interrupt();

	System.out.println(current.isInterrupted());
	System.out.println(Thread.interrupted());

此时返回的是:
true,true

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值