• java中线程状态-死亡


    线程死亡:

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

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

    2、线程抛出一个未捕获的ExceptionError 

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

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

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

     1 public class StartDead extends Thread {
     2     private int i;
     3     public void run(){
     4         for(;i<30;i++){
     5             try{sleep(1000);
     6             System.out.println(getName()+" "+i);}catch(Exception e){
     7                 System.out.println(e);
     8             }
     9         }
    10         
    11     }
    12     public static void main(String[] args){
    13         StartDead s=new StartDead();
    14         for(int k=0;k<100;k++){
    15             //Thread.sleep(1000);
    16             try{System.out.println("当先线程的名字是:"+Thread.currentThread().getName()+" "+k);
    17             Thread.sleep(1000);}catch(Exception e){
    18                 System.out.println(e);
    19             }
    20             if(k==5){
    21                 s.start();
    22                 System.out.println(s.isAlive());
    23             }
    24             if(k>5&& !s.isAlive()){
    25                 s.start();
    26             }
    27         }
    28     }
    29 }
  • 相关阅读:
    BigDecimal 类型数据比较大小
    list排序,顺序,倒序
    springboot添加log4j日志配置log4j.xml生成日志文件
    mybatis使用@param("xxx")注解传参和不使用的区别
    jetty 插件启动指定端口号
    javaweb项目静态资源被拦截的解决方法
    day15 Python全局变量和局部变量
    阿里云操作视频
    Python基础视频
    马哥Python视频
  • 原文地址:https://www.cnblogs.com/teng-IT/p/4445178.html
Copyright © 2020-2023  润新知