Java学习笔记72. 操作线程 -- 判断线程是否启动
程序员文章站
2024-02-26 20:06:40
...
isAlive( ) 方法是用来判断线程是否启动的方法。它的返回值是布尔型,启动为true,没启动为false。
下面的代码说明了isAlive的使用方法:
public class demoisAlive extends Thread{ //创建线程类
public void run(){ //覆盖线程类的run方法
for(int i=1;i<6;i++)
printMsg(); //run方法调用printMsg方法
}
public void printMsg(){ //被调用的msg方法
Thread t = Thread.currentThread(); //msg方法中得到当前线程的引用,并存入线程类型的引用变量t
String name = t.getName(); //使用此引用变量得到当前线程的名字
System.out.println("new thread name " +name); //输出这个线程的名字
System.out.println("new thread status "+t.isAlive()); //输出这个线程的状态
}
public static void main(String[] args){
demoisAlive d = new demoisAlive(); //创建线程类的实例
System.out.println(d.isAlive()); //输出此线程类的实例的状态
d.start(); //启动线程类的实例,启动线程
System.out.println(d.isAlive()); //再次输出此线程类的实例的状态
for(int i=1;i<6;i++)
d.printMsg(); //在主方法中直接调用线程类的方法
System.out.println(d.isAlive()); //最后再检查一下线程类的实例的状态
}
}
可见,在没有使用start方法启动线程类之前,线程的状态是false;启动了之后,线程的状态才是true。
两个线程交替运行,新的线程完全执行完代码后,再检测其状态,结果是false了(看最后一行)。