Java线程有以下几种状态:
新建状态(New):当线程对象被创建时,它处于新建状态。此时线程还没有开始执行。
运行状态(Runnable):当调用线程的start()方法后,线程进入运行状态。此时线程正在执行任务。
阻塞状态(Blocked):当线程正在执行任务时,如果遇到了某些阻塞的情况,比如等待输入、等待锁、等待其他线程等,线程将进入阻塞状态。在阻塞状态下,线程暂时停止执行,直到阻塞条件解除。
等待状态(Waiting):线程在等待某个特定条件满足时,可以调用wait()方法进入等待状态。线程在等待状态下,不会消耗CPU资源,直到被唤醒。
超时等待状态(Timed Waiting):线程在等待某个特定条件满足时,可以设置一个超时时间,调用sleep()方法进入超时等待状态。线程在超时等待状态下,不会消耗CPU资源,直到超时时间到达或被唤醒。
结束状态(Terminated):线程执行完任务或被中断后,线程进入结束状态。此时线程无法再被执行。