Java线程的终止Interrupted优化和stop强制终止
我们知道Java中线程在运行完run()方法之后就会停止,这样的情况是自然停止,那如果我们在run()方法运行的时候想停止线程该怎么做呢?
在Thread类中提供了stop()方法强制停止线程,类似直接将线程kill掉
stop()方法存在的弊端,如下边的例子
public class InterruptedDemo{
public static void main(String[] args) {
StopDemo demo = new StopDemo();
demo.start();
try {
//阻塞1秒,保证i自增完毕
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
demo.stop();//停止线程
demo.sout();//输出i、j自增结果
}
private static class StopDemo extends Thread{
//定义两个变量在run()方法中做自增操作
private int i = 0;
private int j = 0;
@Override
public void run() {
i++;
try {
//阻塞十秒钟
Thread.sleep(10000);
} catch (InterruptedException e) {
e.printStackTrace();
}
j++;
}
//输出i/j自增结果
public void sout