共翁号
共翁号 > 知识 > 线程有几种状态

线程有几种状态

原创2025-06-20 14:44:01

线程在Java中通常有以下几种状态:

新建状态 (NEW)

当线程对象被创建后,但还没有调用 `start()` 方法时,线程处于新建状态。

就绪状态 (Runnable)

线程对象创建后,其他线程调用了该对象的 `start()` 方法,线程便进入就绪状态。

就绪状态的线程位于可运行线程池中,等待操作系统调度执行。

运行状态 (Running)

当线程获取到CPU时间片后,线程进入运行状态,开始执行其任务。

阻塞状态 (Blocked)

线程在运行过程中可能因为等待获取锁、I/O操作等原因而进入阻塞状态。

阻塞状态的线程在条件满足后(如锁释放、I/O操作完成)会重新进入就绪状态。

等待状态 (WAITING)

线程调用 `Object.wait()`、`Thread.join()`(无超时)或 `LockSupport.park()` 方法时,进入等待状态。

等待状态的线程需要等待其他线程做出特定的动作(如通知或中断)才能继续执行。

定时等待状态 (TIMED_WAITING)

线程调用 `Thread.sleep(long)` 或 `Object.wait(long)` 方法时,进入定时等待状态。

定时等待状态的线程在指定的时间后自动返回就绪状态。

终止状态 (TERMINATED)

线程执行完所有任务后,或者因为异常退出 `run()` 方法后,线程进入终止状态。

这些状态反映了线程在其生命周期中的不同阶段,线程的状态转换通常是由Java虚拟机(JVM)根据线程调度策略和操作系统的线程管理机制来控制的。

返回:知识

相关阅读

    最新文章
    猜您喜欢
    热门阅读