说明
在 run()
方法中,每次执行时,先判断标记,再决定是执行还是终止执行
java
线程类
package day21;
public class S8提前停止线程 extends Thread{
private int length = 100;
/**
* 定义成员变量,默认为true,表示运行
*/
private boolean flag = true;
/**
* 当变量是boolean类型时,没有 getXXX() 方法,而是叫 isXXX()
* @return
*/
public boolean isFlag() {
return flag;
}
public void setFlag(boolean flag) {
this.flag = flag;
}
/**
* 多线程要执行的代码,写在run() 中
*/
@Override
public void run() {
for( int i=0;i<length;i++){
/*
* 当flag为true时,正常运行
* 当flag为false时,停止
*/
if(!flag){
return;//break
}
System.out.println("兔子跑了"+i+"米");
}
System.out.println("兔子跑到终点,结束!");
}
}
测试类
package day21;
public class S8TEST {
public static void main(String[] args) {
S8提前停止线程 thread = new S8提前停止线程();
thread.start();
try {
Thread.sleep(1);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
thread.setFlag(false);
}
}