1.线程的状态:
如上图 线程有5种状态:1.新建状态 2.就绪状态 3.运行状态 4.阻塞状态 5.死亡状态
1.新建状态
当用new关键字创建一个线程时,线程就处在新建状态,此时程序还没有开始运行线程中的代码。
2.就绪状态
线程对象调用了start()方法后即进入就绪状态
进入就绪状态后,并不一定运行·run方法,获取到cpu时间片才能运行线程
3.运行状态
线程对象中的start方法中的start0调用了run方法获取到了cpu时间片即进入运行状态
4.阻塞状态
运行中的线程没有运行结束,暂时让出CPU,此时其他处于就绪状态的线程就可以获得CPU时间,进入运行状态。
阻塞原因:
1.线程通过调用sleep方法进入睡眠状态;
2.线程试图得到一个锁,而该锁正被其他线程持有
等等
5.死亡状态
有两个原因会导致线程死亡:
1.run方法正常退出而自然死亡,
2.一个未捕获的异常终止了run方法而使线程猝死。
参考网址: https://blog.csdn.net/xingjing1226/article/details/81977129