转自http://blog.csdn.net/aaaaaaaaabaas/article/details/51822983
在java中有3种方法可以终止正在运行的线程
1)使用退出标志,使线程正常退出,也就是当run方法完成后线程终止
2).使用stop方法强行终止线程,但是不推荐使用该方法。因为该函数已经被淘汰
3).使用Interrupt方法中断线程
1.使用判断终止
class MyThread extends Thread {
@Override
public void run() {
super.run();
for (int i = 0; i < 500000; i++) {
System.out.println("i=" + i);
}
}
}
public static void main(String[] args) {
MyThread myThread = new MyThread();
myThread.start();
try {
Thread.sleep(1000);
myThread.interrupt();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
运行结果:
i=499988
i=499989
i=499990
i=499991
i=499992
i=499993
i=499994
i=499995
i=499996
i=499997
i=499998
i=499999
可见interrupt方法解决不了终止线程问题。那么如何终止线程呢?
在现场加个判断,当调用了interrupt方法后获取interrupted判断它的值就可以了
如:
for (int i = 0; i < 500000 && interrupted(); i++) {
System.out.println("i=" + i);
}