zoukankan      html  css  js  c++  java
  • java中线程状态-死亡

    线程死亡:

    线程会以如下3种方式结束,结束后就处于死亡状态。

    1、run()或call()方法执行完成,线程正常结束。

    2、线程抛出一个未捕获的Exception或Error 

    3、直接调用该线程的stop方法结束该线程---该方法容易导致死锁,通常不推荐使用。 

    为了测试某个线程是否已经死亡,可以调用线程对象isAlive()方法,当线程处于就绪、运行、阻塞三种状态时,该方法返回true;当线程处于新建、死亡两种状态,该方法将返回false。 

    注意:不要试图对一个死亡的线程调用start方法使它重新启动,死亡就是死亡,该线程不可能再次作为线程执行。(如果重新启动的话,运行之后将引发IllegalThreadStateException异常,这表明处于死亡状态的线程无法再次运行了。)

    public class StartDead extends Thread {
        private int i;
        public void run(){
            for(;i<30;i++){
                try{sleep(1000);
                System.out.println(getName()+" "+i);}catch(Exception e){
                    System.out.println(e);
                }
            }
            
        }
        public static void main(String[] args){
            StartDead s=new StartDead();
            for(int k=0;k<100;k++){
                //Thread.sleep(1000);
                try{System.out.println("当先线程的名字是:"+Thread.currentThread().getName()+" "+k);
                Thread.sleep(1000);}catch(Exception e){
                    System.out.println(e);
                }
                if(k==5){
                    s.start();
                    System.out.println(s.isAlive());
                }
                if(k>5&& !s.isAlive()){
                    s.start();
                }
            }
        }
    }
  • 相关阅读:
    gojs常用API (中文文档)
    webpack的安装
    win10如何将wps设置成默认应用
    gojs常用API-画布操作
    Access中替代case when的方法 .
    C++ 11 中的右值引用
    形参前的&&啥意思?
    【C语言学习笔记】字符串拼接的3种方法 .
    java项目打jar包
    教你用DrawLayout 实现Android 侧滑菜单
  • 原文地址:https://www.cnblogs.com/javabg/p/9810063.html
Copyright © 2011-2022 走看看