标识中断实体类:
/**
* 标识位中断线程(推荐使用)
*
* @author WanAkiko
*
*/
public class MarkInterrupt implements Runnable {
private String name;
private Boolean flag = true;
public MarkInterrupt() {
super();
}
public MarkInterrupt(String name, Boolean flag) {
super();
this.name = name;
this.flag = flag;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Boolean getFlag() {
return flag;
}
public void setFlag(Boolean flag) {
this.flag = flag;
}
@Override
public void run() {
for (int i = 1; i <= 10; i++) {
System.out.println("当前迭代次数:" + i + ",Thread-" + name);
}
while (flag) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("提示:实现线程任务...");
}
}
}
标识中断测试:
package test;
import domain.MarkInterrupt;
/**
* 测试标识位中断线程
*
* @author WanAkiko
*
*/
public class TestMarkInterrupt {
public static void main(String[] args) {
boolean flag = true;
MarkInterrupt interrupt = new MarkInterrupt("WanAkiko", flag);
new Thread(interrupt).start();
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
interrupt.setFlag(flag = false);
}
}
运行示例: