java中将线程的状态分为五种
- NEW(新建状态)
调用构造方法新建对象时,此时该线程为新建状态。 - RUNNABLE(可运行状态)
线程对象调用 start() 方法后,此时线程变为可运行状态,在可运行状态中,可以变为等待状态、计时等待状态、阻塞状态。 - TERMINATED(终止状态)
线程执行结束后,进入到终止状态。 - WAITING(等待状态)
处于可运行状态的线程,在竞争 synchronized 锁时,没有获取到锁的线程,变为阻塞状态。 - BLOCKED(阻塞状态)
当调用 Thread.join 方法,或 Object.wait 方法时,主线程进入阻塞状态。可通过 Object.notify(),Object.notifyAll() 唤醒。 - TIMED-WAITING(计时等待状态)
当调用设置时间的 Thread.join 方法,Object.wait,或 Threa.sleep 方法时,主线程进入计时等待。