public class CounterIncrement extends Thread {
private volatile boolean terminated = false;
private int counter = 0;
@Override
public void run() {
try {
while (!terminated) {
System.out.println(Thread.currentThread().getName() + " " + counter++);
}
}finally {
//通知用户即将关闭线程
this.clean();
}
}
private void clean() {
System.out.println("模拟做一些清理的工作" + counter);
}
public void close() {
this.terminated = true;
this.interrupt();
}
}
public static void main(String[] args) throws InterruptedException {
CounterIncrement counterIncrement = new CounterIncrement();
counterIncrement.start();
Thread.sleep(8000);
//关闭线程的方法
counterIncrement.close();
}