zoukankan      html  css  js  c++  java
  • 【java多线程】线程状态分析

    一、java线程的状态

    NEW: 新建状态,线程对象已经创建,但尚未启动

    RUNNABLE:就绪状态,可运行状态,调用了线程的start方法,已经在java虚拟机中执行,等待获取操作系统资源如CPU,操作系统调度运行。

    BLOCKED:堵塞状态。线程等待锁的状态,等待获取锁进入同步块/方法或调用wait后重新进入需要竞争锁

    WAITING:等待状态。等待另一个线程以执行特定的操作。调用以下方法进入等待状态。 Object.wait(), Thread.join(),LockSupport.park

    TIMED_WAITING: 线程等待一段时间。调用带参数的Thread.sleep, objct.wait,Thread.join,LockSupport.parkNanos,LockSupport.parkUntil

    TERMINATED:进程结束状态。

    、java线程的状态流转


    三、java线程的状态分析

    进入wating状态的线程等待唤醒(notify或notifyAll)才有机会获取cpu的时间片段来继续执行

    线程的 blocked状态往往是无法进入同步方法/代码块来完成的。这是因为无法获取到与同步方法/代码块相关联的锁。

    与wating状态相关联的是等待队列,与blocked状态相关的是同步队列,一个线程由等待队列迁移到同步队列时,线程状态将会由wating转化为blocked可以这样说,blocked状态是处于wating状态的线程重新焕发生命力的必由之路。

     
  • 相关阅读:
    菜鸟的it之路-起航
    实验报告四
    实验报告三
    实验报告二
    实验报告一
    远程连接
    操作系统安装
    服务器硬件组成
    linux系统下排查cpu过高原因
    windows系统下排查Java项目cpu过高原因
  • 原文地址:https://www.cnblogs.com/shangxiaofei/p/10320524.html
Copyright © 2011-2022 走看看