线程停止
-
线程状态
- Thread t = new Thread();线程对象一旦创建了就进入到了新生状态
- 当调用start()方法,线程立即进入就绪状态蛋并不意味着立即调度执行(此时为就绪状态)
- 就绪状态经过cpu的调度才能真正进入运行状态(运行状态才真正执行线程体的代码块)
- 阻塞状态(当调用sleep,wait或同步锁定时,线程进入阻塞状态,就是代码不往下执行,阻塞事件解除后重新进入就绪状态,等待cpu调度执行)
- dead(线程中断或者结束,一旦进入死亡状态,就不能再次启动)
线程停止实例
import javafx.scene.paint.Stop;
public class TestStop implements Runnable{
//定义一个判断条件的标志位
private boolean flag=true;
public void run() {
int i =0;
while (flag){
System.out.println("landing..."+i++);
}
}
//设置一个公开的方法停止线程
public void stop(){
this.flag=false;
}
public static void main(String[] args) {
TestStop testStop = new TestStop();
new Thread(testStop).start();
for (int i = 0; i < 100; i++) {
if(i==80){
//调用stop方法改变标志位
testStop.stop();
System.out.println("停止了");
}
System.out.println("此时运行了"+i);
}
}
}