zoukankan      html  css  js  c++  java
  • 线程的状态及其转换

    线程状态:(六种)

    public enum State {
            NEW,
            RUNNABLE,
            BLOCKED,
            WAITING,
            TIMED_WAITING,
            TERMINATED;
        }

    NEW:新建状态

    用new创建的线程处于新建状态,此时他和其他的Java对象一样,仅仅在堆中分配了内存

    Runable:就绪状态

    当线程对象被创建后,调用了start方法,线程就处于就绪状态,处于就绪状态的线程(其他的条件都满足,可以等待获取CPU的使用权),等待获取CPU的使用权

    Running:运行状态

    处于运行状态的线程也就占用的CPU,执行线程代码。只能就绪状态的线程进入到运行状态

    Blocked:阻塞状态

     阻塞状态是指线程因为某些原因放弃CPU(缺少资源:IO、锁),暂时停止运行,当前的线程处于阻塞状态

    Waiting:等待状态

     当线程处于该状态,如果某个线程中的对象的wait()时,JVM就会将线程放入到等待池池

    Timed_waiting:超时等待

    sleep(long time),jion(long time) 会使线程处于睡眠状态

    Terminated:终止状态

    当线程执行到run()方法结尾时,就进入到终止状态,该表示线程的生命周期结束

    线程状态转换:

     一个线程的生命周期中需要的状态:New、Runable、Running、Terminated四个状态。

    线程在需要响应的资源时,进入到阻塞状态:阻塞状态包含Waiting,Blocked、Time_waiting状态。

  • 相关阅读:
    JS检测浏览器Adobe Reader插件
    Java Filter防止sql注入攻击
    log4j的基本配置参数
    Log4j.properties配置详解
    使用Spring进行统一日志管理 + 统一异常管理
    springMVC获取request和response
    深入浅出Mybatis-分页
    PROPAGATION_REQUIRED事务管理
    Java String类型数据的字节长度
    构建高并发高可用的电商平台架构实践
  • 原文地址:https://www.cnblogs.com/128-cdy/p/12458712.html
Copyright © 2011-2022 走看看