package com.freeflying.thread.base;
/**
* @ClassName: StopThreadByException
* @Description:通过异常的方式停止线程
* @author freeflying
* @date 2018年6月23日
*/
public class StopThreadByException {
public static void main(String[] args) {
try {
StopThreadByExceptionEx stopThreadByExceptionEx=new StopThreadByExceptionEx();
stopThreadByExceptionEx.start();
Thread.sleep(2000);
stopThreadByExceptionEx.interrupt();
} catch (Exception e) {
}
System.out.println("end!!!");
}
}
class StopThreadByExceptionEx extends Thread{
@Override
public void run() {
for (int i = 0; i < 500000; i++) {
//declare current thread is stop status
if(this.interrupted()) {
System.out.println("current thread is stop status,i will exit!!");
break;
}
System.out.println("i"+(i+1));
}
}
}
结果:
......
i243309
i243310
i243311
current thread is stop status,i will exit!!
end!!!
结论:通过这种方式停止线程,线程虽然停止了,但是如果后面还有语句还是会执行的。