2026/5/21 16:35:45
网站建设
项目流程
中山小型网站建设公司,北京网页设计培训,开源cms管理系统,网站初期建设的成本来源java.lang.Thread.State枚举了六种线程状态#xff0c;可以调用Thread类的getState()方法获取当前线程的状态 一#xff1a;NEW#xff08;新建#xff09; 线程被创建但尚未启动 例如#xff1a;Thread t new Thread(); 后#xff0c;未调用 t.start()
二#xff1…java.lang.Thread.State枚举了六种线程状态可以调用Thread类的getState()方法获取当前线程的状态一NEW新建线程被创建但尚未启动例如Thread t new Thread();后未调用t.start()二RUNNABLE可运行线程正在 JVM 中执行但可能正在等待操作系统的资源如 CPU。包括就绪ready和运行中running两个子状态。例如调用start()后线程可能正在运行或等待 CPU 时间片。三BLOCKED阻塞线程被阻塞等待监视器锁monitor lock进入同步块/方法。通常发生在竞争synchronized锁时其他线程持有该锁。注意与Object.wait()导致的等待不同。四WAITTING等待线程无限期等待其他线程的特定动作。进入此状态的方法Object.wait()未指定超时Thread.join()未指定超时LockSupport.park()需要其他线程通过notify()/notifyAll()或指定条件来唤醒五TIME_WAITTING限时等待与WAITING类似但设置了最大等待时间。进入此状态的方法Thread.sleep(time)Object.wait(timeout)Thread.join(timeout)LockSupport.parkNanos()六TERMINATED终止线程已执行完毕run()方法结束或异常退出。不可再次启动调用start()会抛异常。七补充BLOCKED 与 WAITING 的区别BLOCKED是等待获取synchronized 锁。WAITING/TIMED_WAITING是主动调用等待方法如wait()、join()。RUNNABLE 状态在 Java 层面线程是否正在占用 CPU 由操作系统调度决定JVM 统一视为RUNNABLE。