Java线程的生命周期有以下几种状态:
新建(New):当线程对象被创建时,该线程处于新建状态。
就绪(Runnable):当线程对象调用 start()
方法后,该线程处于就绪状态,等待获取CPU时间片执行。
运行(Running):当线程获得CPU时间片后,该线程处于运行状态,执行线程的 run()
方法中的代码。
阻塞(Blocked):在某些情况下,线程可能因为等待某个资源或者锁等原因而暂时停止执行,此时线程进入阻塞状态。
等待(Waiting):线程处于等待状态,可能因为调用了 wait()
方法,或者调用了 join()
方法加入了其他线程的等待队列。
超时等待(Timed Waiting):线程处于超时等待状态,可能因为调用了 sleep()
方法,或者调用了 wait(long timeout)
方法指定了等待时间。
终止(Terminated):当线程的 run()
方法执行完成,或者线程被中断时,该线程处于终止状态。