介绍
简易的线程状态如下图
Java Thread线程内部有一个枚举内部类State,定义了Java语言线程状态的枚举值
- NEW(初始化状态)
- RUNNABLE (可运行/运行状态)
- BLOCKED(阻塞状态)
- WAITING (无时限等待)
- TIMED_WAITING(有时限等待)
- TERMINATED(终止状态)
Java将操作系统层面的阻塞状态细分为BLOCK,WAITING,TIMED_WAITING三种状态
NEW:新建状态,线程被创建但未启动的状态。创建线程有三种方式
- 继承Thread类
- 实现Runnable接口
- 实现Callable接口
我们最常用的是通过实现接口这种方式,Runnable和Callable接口的区别如下
- Runnable无法获取返回值,而Callable可以获取返回值
- Runnable无法