isAlive()方法的功能河北银丹互联网科技有限公司

河北银丹互联网科技有限公司class Mythread extends Thread{河北银丹互联网科技有限公司

ec0847f3e325bbd05c42500cc058a61d.jpeg

@Override
public void run() {
System.out.println("run =="+this.isAlive());
}

}

public class Test01 {

public static void main(String[] args) {
Mythread thread=new Mythread();
System.out.println("begin =="+thread.isAlive());//①
thread.start();//②
System.out.println("end =="+thread.isAlive());//③
}

}

结果:
begin ==false
end ==true
run ==true
  

方法isAlive()的作用是测试线程是否处于活动状态。那么什么情况下是活动状态呢?活动状态就是线程已经启动且尚未停止。线程处于正在运行或准备开始运行的状态,就认为线程是存活的

①处代码的结果为false,因为此时线程还未启动;

②处代码调用了run()方法输出结果为run ==true,此时线程处于活动状态;

③处代码的结果为true,有的同学看到这个输出可能会不理解,不是说线程处于活动状态isAlive()方法的结果才是true,现在程序都已经运行结束了为什么还是true?这里的输出结果是不确定的,我们再来看下面一段代码

我们将例1中的代码稍做修改,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class Test01 {

public static void main(String[] args) throws InterruptedException {
Mythread thread=new Mythread();
System.out.println("begin =="+thread.isAlive());//①
thread.start();//②
Thread.sleep(1000);//这里加了一行代码,让当前线程沉睡1秒
System.out.println("end =="+thread.isAlive());//③
}

}

结果:
begin ==false
run ==true
end ==false

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值