报错的执行代码如下:
// 使用匿名内部类形式初始化Thread实例子
threadA = new Thread(new Runnable() {
public void run() { // 重写run()方法
for(int i =0 ; i <= 100 ; i ++) {
progressBar.setValue(i);
if(i == 50) {
threadA.interrupt();
}
try {
Thread.sleep(100);
} catch(InterruptedExceptione{
// TODO 自动生成的 catch 块
e.printStackTrace();
//在这里是异常情况报错,输出语句更好些
//System.out.println("中断");(如果你调整为输出语句,你会发现,会打印“中断”两个字,但是程序没有中断)
}
}
}
});
threadA.start(); // 启动线程A
}
报错:中断没有执行,“中断“两字打印出来了,但是程序没有中断。
报错原因:我这边是因为try-catch包裹内容出错,我的try-catch只包裹了休眠代码,导致中断无法执行
正确的执行代码如下:
// 使用匿名内部类形式初始化Thread实例子
threadA = new Thread(new Runnable() {
public void run() { // 重写run()方法
try {
for(int i =0 ; i <= 100 ; i ++) {
progressBar.setValue(i);
if(i == 50) {
threadA.interrupt();
}
Thread.sleep(100);
}
} catch (InterruptedException e) {
// TODO 自动生成的 catch 块
System.out.println("程序中断");
}
}
});
threadA.start(); // 启动线程A
}
学习犹如逆水行舟,不进则退。
加油,学习永无止境。