我们知道Java的线程一共有6种状态, 在Thread中定义了枚举内部类来表示.
- NEW(新建): 新创建一个线程对象, 并没有调用start()方法.
- RUNNABLE(运行): Java把操作系统的Ready(就绪)和Running(执行)两种状态合并为一种状态Runnable.在调用start()方法后线程处于Ready状态, 当获得CPU执行时间片后开始执行run()犯法的代码, 此时线程处于Running状态.
- BLOCKED(阻塞): 阻塞状态.
WAITING(等待): 表示线程无限期等待, 需要唤醒才可以继续获得CPU执行时间片.
TIMED_WAITING(限时等待): 表示在指定时间内等待, 超过对应的时间进入RUNNABLE状态.
TERMINATED(结束): 表示线程死亡, 正常结束或者执行抛出异常未被捕获都会进入该状态.