1.线程的六种状态
新建状态(New)
刚刚创建的并且未调用start方法的线程
可运行状态(Runnable)
只有新建状态下的线程才能调用start方法,然后线程由新建状态进入可运行状态
锁阻塞状态(Blocked)
当前线程运行到需要锁对象时,当前锁对象已经被其他线程持有,那么当前线程进入锁阻塞状态!
限时等待状态(Timed_waiting)
当前线程执行到Thread.sleep(毫秒)时,当前线程进入限时等待状态!
无限等待状态(Waiting)
- 线程如何进入Waiting(无线等待状态)
1.该线程首先要持有锁对象
2.调用锁对象的wait方法
3.该线程会自动释放锁对象,然后进入无限等待状态
- 其他线程如何唤醒Waiting状态的线程
1.其他线程首先也要持有锁对象
2.调用锁对象的notify方法
3.被唤醒的线程进入锁阻塞状态,直到其他线程释放锁对象,被唤醒线程再次抢到对象才能进入可运行状态
消亡状态(Terminated)
当前线程的任务执行完毕,线程默认进入总结状态