线程可以有6种状态:
- New(新创建)
当用new创建一个线程时,此时为new状态。 - Runnable(可运行)
新建的线程调用start()方法之后,线程变为可运行状态,可运行状态的线程可能在运行也可能没运行,这取决于操作系统给线程提供运行的时间。 - 被阻塞(Blocked)
当线程准备运行的时候,发现请求的内部对象锁被其他线程持有,线程将进入阻塞状态。只有当其他线程释放该锁,且线程调度器允许本线程持有它的时候,线程将转变为非阻塞状态。 - 等待(Waiting)
当线程等待另一个线程通知线程调度器一个条件时,他自己进入等待状态。 - 计时等待(Timed waiting)
调用带超时参数方法的线程将进入计时等待。此状态一直持续到超时或者接收到适当的通知。 - 终止(Terminated)
run方法正常退出而死亡;
因为一个未捕获的异常终止当前的run方法意外死亡;
可以调用stop方法杀死线程,此方法不安全,已标注为Deprecated,不建议使用。