多线程 - 中断操作:jdk 提供的中断方法被弃用,自定义实现
线程中断方法被弃用,如果要实现该功能需要手动实现,一种思路是定义一个布尔值变量(对外提供方法修改变量值)每次做业务都要判断该,如果为 true 说明不需要停止,如果为 false 就停止
class MyThread2 implements Runnable{
// 定义一个变量, 用于控制停止线程
private boolean flag = true;
public boolean getFlag() {
return flag;
}
// 对外提供修改值的方法
public void setFlag(boolean flag) {
this.flag = flag;
}
@Override
public void run() {
// 循环获取变量 flag 值, 如果是 true 就执行
while (this.getFlag()){
System.out.println("flag 为真,不需要停止...");
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
public class Test2 {
public static void main(String[] args) throws InterruptedException {
MyThread2 myThread2 = new MyThread2();
new Thread(myThread2).start();
// 两秒后停止线程
Thread.sleep(2000);
myThread2.setFlag(false);
}
}