package thread.lzy.www;
/**
* 终止线程
* 1.线程正常执行完毕 自动终止
* 2.外部干涉-->加入标识
* 注:不要使用stop destroy方法,线程不安全
* @author Administration
*
*/
public class aTerminateThread implements Runnable {
//加入标识,标记线程体是否可以运行
private boolean flag=true;
private String name;
public aTerminateThread(String name) {
this.name = name;
}
@Override
public void run() {
int i=0;
//关联标识,true--》运行,false--》停止
while(flag) {
System.out.println(name+"-->"+i++);
}
}
//对外提供方法,改变标识
public void sttoopp() {
this.flag=false;
}
public static void main(String[] args) {
aTerminateThread tt=new aTerminateThread("lzy");
new Thread(tt).start();
for(int i=0;i<99;i++) {
if(i==88) {
tt.sttoopp();
System.out.println("tt线程终止");
}
System.out.println("main"+i);
}
}
}
重写run方法中(19-26行),会无限打印某句话,sttoopp()方法负责打断run()方法的运行,即线程终止,在某个合适的条件下(例如代码中i==88时,运行sttoopp方法,终止该线程)终止线程