Java中的线程有6种状态:新建状态、就绪状态、运行状态、阻塞状态、等待状态和终止状态。
- 新建状态:当线程对象被创建时,它处于新建状态,此时它还没有开始运行。
- 就绪状态:当线程处于就绪状态时,表示它已经准备好被运行,只等待CPU的调度。
- 运行状态:当线程获得CPU资源时,它进入运行状态,开始执行run()方法中的代码。
- 阻塞状态:当线程因为某些原因暂时无法继续执行时,它进入阻塞状态。例如,线程调用了sleep()方法、等待IO操作完成、等待获取synchronized锁等。
- 等待状态:当线程调用了wait()方法后,它进入等待状态,直到其他线程调用了notify()或notifyAll()方法唤醒它。
- 终止状态:当线程run()方法执行完毕或者因为异常退出时,它进入终止状态,此时它的生命周期已经结束。