一、线程的状态

新建状态、就绪状态、阻塞状态、死亡状态。

1、新建状态

新创建一个线程对象。

2、就绪状态

线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于“可运行的线程池”中,变得可运行,只等待获取CPU的使用权。即在就绪状态的进程除了CPU之外,其他的运行所需资源都已全部获得。

2.1、就绪状态只是说有资格运行,调度程序没有挑选到你,你就永远是可运行状态。

2.2、调用线程的start()方法,此线程进入就绪状态。

2.3、当前线程sleep()方法结束,其他线程join()结束,等待用户输入完毕,某个线程拿到对象锁,这些线程也将进入就绪状态。

2.4、当前线程时间片用完了,调用当前线程的yeild()方法,当前线程进入就绪方法。

2.5、锁池里的线程拿到对象锁后,进入就绪状态。

3、运行状态

就绪状态的线程获取了CPU,执行程序代码。

3.1、run()方法或main()方法结束后,线程就进入终止状态。

3.2、当线程调用了自身的sleep()方法或其他线程的join()方法,进程让出CPU,然后就会进入阻塞状态(该状态即停止当前线程,但并不释放所占有的资源即调用sleep()方法后,线程不会