Java中的线程可以存在以下五种状态:
1. 新建状态(New):当一个线程被创建时,它处于新建状态。此时它还没有开始执行,不能被系统调度。
2. 就绪状态(Runnable):当线程被start()方法启动后,它进入就绪状态。此时它已经准备好了,只等待系统调度它的CPU资源,开始运行。
3. 运行状态(Running):当线程得到CPU资源后,它进入运行状态。此时它正在处理任务。
4. 阻塞状态(Blocked):当线程无法获取到所需的资源(如锁)时,它会进入阻塞状态。在此状态下,线程不能继续执行,只能等待获得所需的资源后再次进入就绪状态。
5. 终止状态(Terminated):当线程任务执行完毕、run()方法结束或发生异常时,它进入终止状态。此时线程的生命周期结束,它将不能再次进入任何其他状态。