Java线程有以下几种状态:
- 新建(New):当线程对象被创建但还没有调用start()方法时,线程处于新建状态。
- 运行(Runnable):当线程调用start()方法后,线程处于运行状态,可以执行任务。
- 阻塞(Blocked):线程在等待获取锁时会进入阻塞状态。
- 等待(Waiting):线程调用Object.wait()、Thread.join()或LockSupport.park()方法后进入等待状态。
- 计时等待(Timed Waiting):线程调用Thread.sleep()、Object.wait(long)、Thread.join(long)或LockSupport.parkNanos()方法后进入计时等待状态。
- 终止(Terminated):线程执行完任务或者发生异常导致线程终止时,线程进入终止状态。
这些状态可以通过Thread类的getState()方法获取。