现在的jdk版本三个方法完成对线程中断的支持。
public boolean isInterrupted()
public void interrupt()
public static boolean interrupted()
每个线程都一个状态位用于标识当前线程对象是否是中断状态。isInterrupted是一个实例方法,主要用于判断当前线程对象的中断标志位是否被标记了,如果被标记了则返回true,否则返回false。
我们写一个线程
在MainActivity运行
运行结果如下:
疯狂执行,那我们怎么停下这个线程。是不是用interrupted()方法就可以,答案是否定的
不能中断这个线程,这个方法只能给这个线程设置一个中断标志。我们看一下
线程中断状态开始为false,当调用 interrupted() ,线程状态变为 true,但是线程却任然执行。
那么这个状态有什么意义。 其实,当线程中断标志状态来控制,下面把我们的程序改一下,就可以用interrupted()来中断程序了。
主线程代码不变
线程停止。所以这个中断就是为了增加我们程序的灵活性,是有用途的。