isAlive()方法
功能:
判断当前线程是否处于活动状态。
示例代码:
package a;
class IsAliveThread extends Thread{
public IsAliveThread() {
System.out.println("构造方法 =="+this.isAlive());
}
@Override
public void run() {
System.out.println("run()方法 =="+this.isAlive());
}
}
public class IsAliveTest {
public static void main(String[] args) throws InterruptedException {
IsAliveThread isAliveThread=new IsAliveThread();
System.out.println("begin ==" +isAliveThread.isAlive());
isAliveThread.start();
//Thread.sleep(1000);
System.out.println("end ==" +isAliveThread.isAlive());
}
}
运行结果:
构造方法 ==false
begin ==false
end ==true
run()方法 ==true
结果分析:
可以看到在调用了start()方法之后线程才算活动,在这之前或者线程执行完成之后都属于非活动状态。
稍作修改
将main()方法加入,Thread.sleep(1000);
public static void main(String[] args) throws InterruptedException {
IsAliveThread isAliveThread=new IsAliveThread();
System.out.println("begin ==" +isAliveThread.isAlive());
isAliveThread.start();
Thread.sleep(1000);
System.out.println("end ==" +isAliveThread.isAlive());
}
运行结果:
构造方法 ==false
begin ==false
run()方法 ==true
end ==false
结果分析
此时主线程休眠1S,在这之后isAliveThread线程执行完成,isAlive()状态为false。