美文网首页
java线程状态

java线程状态

作者: 乌木山 | 来源:发表于2020-01-09 22:35 被阅读0次

    java的线程状态包括以下几种:

    NEW

    线程创建的初始状态。

    RUNABLE

    线程正在执行。

    注意这里是java线程的状态,而非操作系统中的线程状态,因此有可能RUNABLE状态的线程正处于等待系统cpu资源的状态。

    BLOCKED

    线程处于等待锁的状态。当java线程为了进入synchronized代码块等待获取monitor,或者被唤醒重新等待获取monitor。就会进入blocked状态。
    如果在实际项目中,发现大量block线程,可能就需要我们去关注是什么东西导致的锁竞争。因为大量线程处于blocked不是一个健康态。

    WATING

    等待某一个状态或结果,一般是由其他线程来唤醒。通过调用如下的方法,线程会进入waiting状态。

    • Object.wait with no timeout
    • Thread.joinwith no timeout
    • LockSupport.park

    TIMED_WAITING

    和waiting状态基本一直,只不过在超过等待时间后会被自动唤醒。通过如下方法会进入TIMED_WAITING状态:

    • Thread.sleep
    • Object.wait with timeout
    • Thread.join with timeout
    • LockSupport.parkNanos
    • LockSupport.parkUntil

    TERMINATED

    线程执行玩任务后,就会到达终止态。

    相关文章

      网友评论

          本文标题:java线程状态

          本文链接:https://www.haomeiwen.com/subject/fhxwbctx.html