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