线程在执行过程中,可以处于的几种状态

67 阅读1分钟
  1. 新建状态(New)

    • 线程被创建,但还未启动。在这个状态下,线程还没有分配到处理器资源,因此不会执行。
  2. 就绪状态(Runnable)

    • 线程已经被创建,并且已经启动,但并未阻塞,可以立即执行。处于就绪状态的线程可能会等待分配处理器资源,一旦获得资源就会进入运行状态。
  3. 运行状态(Running)

    • 线程正在执行其任务,处于活动状态。在这个状态下,线程获得了处理器资源并且正在执行其代码。
  4. 阻塞状态(Blocked)

    • 线程被阻塞,暂时停止执行。通常是在等待某个条件的发生,比如等待 I/O 操作完成或者等待获取锁。
  5. 等待状态(Waiting)

    • 线程在等待某个条件的发生,与阻塞状态不同,等待状态的线程不会主动去竞争 CPU 资源。
  6. 超时等待状态(Timed Waiting)

    • 类似于等待状态,但设置了一个超时时间,在超过指定时间后会自动唤醒。
  7. 睡眠状态(Sleeping)

    • 线程通过调用 Thread.sleep() 方法主动进入睡眠状态,暂停执行一段指定的时间。
  8. 终止状态(Terminated)

    • 线程执行完任务或者发生异常导致线程终止。已经结束执行的线程处于终止状态,不再可执行。