天天看点

Java学习笔记72. 操作线程 -- 判断线程是否启动

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());    //最后再检查一下线程类的实例的状态
    }
}
           
Java学习笔记72. 操作线程 -- 判断线程是否启动

可见,在没有使用start方法启动线程类之前,线程的状态是false;启动了之后,线程的状态才是true。

两个线程交替运行,新的线程完全执行完代码后,再检测其状态,结果是false了(看最后一行)。

继续阅读