在开始本文之前,需要了解线程的状态,分别是:
//更详细的解释可以见源码 Thread.class 中的 State
public enum State{
NEW,//新建状态
RUNNABLE,//运行状态
BLOCKED,//阻塞状态
WAITING,//等待状态
TIMED_WAITING,//有时间限制的等待状态
TERMINATED;//终止状态
}
线程暂停、中断
1.线程如何中断?
- 使用
interrupt()
中断,给线程设置一个中断标志,本地方法
interrupt0();// Just to set the interrupt flag
然后可以通过方法isInterrupted()
或interrupted()
查询线程的是否被中断而进行其他的操作。 - 如果线程处于
BLOCKED
WAITING