当前位置 : 主页 > 编程语言 > java >

程序尝试对处于死亡状态的线程再次调用start()方法

来源:互联网 收集:自由互联 发布时间:2021-06-28
gistfile1.txt public class StartDead extends Thread{ //定义后台线程的线程执行体与普通线程没有任何区别 private int i; //重写run()方法,run()方法的方法体就是线程执行体 @Override public void run() { for
gistfile1.txt
public class StartDead extends Thread{

    //定义后台线程的线程执行体与普通线程没有任何区别
    private int i;
    //重写run()方法,run()方法的方法体就是线程执行体
    @Override
    public void run() {
        for (;i<1000;i++)
        {
            //当线程类继承Thread类时,直接使用this即可获取当前线程
            //Thread类的getName()返回当前线程的名字
            System.out.println(getName()+" "+i);
        }
    }

    public static void main(String[] args) {
        StartDead sd = new StartDead();
        for (int i=0;i<300;i++)
        {
            //调用Thread的currentThread()方法获取当前线程
            System.out.println(Thread.currentThread().getName()+" "+i);
            if(i == 20)
            {
                //启动线程
                sd.start();
                //判断启动后线程的isAlive()值,输出true
                System.out.println(sd.isAlive());
            }
            //当线程处于新建,死亡两种状态时,isAlive()返回false
            if(i>20 && !sd.isAlive())
            {
                //企图再次启动该线程
                sd.start();
            }
        }
    }
}
网友评论