1、新建
- 创建线程的时候,线程就处于新建状态。
- jvm为线程分配内存,初始化成员变量
2、就绪
- 当线程对象调用了start()方法之后,线程就处于就绪状态了
- jvm为线程创建方法栈和程序计数器,等待线程调度器调度
3、运行
- 就绪状态的线程获取到处理器资源,运行run方法,处于运行状态
4、阻塞
- 线程主动调用sleep方法,主动放弃处理器资源
- 线程运行了一个阻塞式的IO方法,在等待返回值回来的时候。处于阻塞状态
- 线程获取一个同步锁,但是这个同步锁,正在被其他线程使用
- 线程在等待某个通知(notify)
- 线程调用了suspend方法,将线程挂起,慎用,容易导致线程死锁
5、结束 - 线程顺利执行完run()/call()方法
- 线程主动调用stop方法,慎用,容易导致线程死锁
- 线程抛出未捕获的异常
后续再回头补充一下这部分知识,暂时先这么多理解。