- New 初始状态 `线程创建时`
- Runable 可运行状态 `可运行等待线程池中被调度选中,获取时间片。或者调用线程start()方法时`
- Running 运行状态 `线程获取到时间片处于执行状态`
- Blocked 阻塞状态
```
线程阻塞状态可分为“等待阻塞”、“同步阻塞”、“其他阻塞”。
等待阻塞:当调用Object对象wait()方法时
同步阻塞:当遇到synchronized时,无法取得锁时
其他阻塞:发出IO请求,等待用户输入时,或者调用Thread的sleep()或者join()方法。
```
- Death 死亡状态 `线程run()、main() 方法执行结束,或者因异常退出了run()方法,则该线程结束生命周期。死亡的线程不可再次复生。`
![](https://img.kancloud.cn/b0/a8/b0a87228bcbc0dacf9f0d54c931f5e3a_1177x567.png)
参考文章:https://blog.csdn.net/xingjing1226/article/details/81977129
- 2111总结
- 1.面向对象
- 1.0.1 super()与this()的区别
- 1.0.2 private、default、protected、public的访问范围
- 1.0.3 continue、break、return区别
- 1.0.4 重载和重写的区别
- 1.0.5 final的特点
- 1.0.6 抽象类与接口的区别
- 1.0.7 java类型
- 1.0.8 什么是反射
- 1.0.9 类的加载机制
- 1.1.1 jvm内存结构
- 1.1.2 java垃圾回收机制
- 1.1.3 并发问题
- 1.1.3.1 线程的状态与关系
- 1.1.3.2 并发的三大性质
- 1.1.3.3 线程的实现与使用
- 1.1.3.4 线程池相关
- 1.1.3.5 并发相关方法
- 1.1.3.6 线程相关工具
- 1.1.4 jdk8特性
- 1.1.4.1 lambad表达式的使用
- 1.1.4.2 stream API
- 1.1.4.3 Optional容器使用
- 1.1.4.4 LocalDateTime
- 1.15 io流
- 1.16 动态代理实现
- 2.JavaEE
- 2.0.1 JSP四大作用域九大内置对象
- 2.0.2 cookie与session的区别
- 4.数据库相关
- 5.git版本管理
- 7.一些问题解决
- 7.1 分布式锁如何实现