线程对象在不同的时刻会处于不同的状态,包括新建、可运行、阻塞、等待和终结状态。线程的状态转移是由操作系统进行调度控制的。对于线程的同步,在获取锁失败时会进入Monitor的阻塞队列阻塞,在获取锁成功但条件不满足时调用wait()方法进入等待集合等待,还有一种有时限等待方式。当其它持锁线程调用notify()或notifyAll()方法时,会按照一定规则唤醒阻塞、等待线程,恢复为可运行状态。