文章目录
线程停止
注意点:
1.建议线程正常停止,利用次数,不建议死循环
2.建议使用一个标志位来判断是否停止
3.不要使用jdk提供的stop和destroy方法,因为已废弃
具体实现步骤及代码:
package com.heima.Multithreading;
//测试stop
//1.建议线程正常停止,利用次数,不建议死循环
//2.建议使用一个标志位来判断是否停止
//3.不要使用jdk提供的stop和destroy方法,因为已废弃
public class Stop implements Runnable{
//创建一个标志位来判断是否停止
private boolean flag = true;
@Override
public void run() {
int i = 0;
while(flag){
System.out.println("线程运行"+i++);
}
}
//设置一个公开的方法来停止线程,实质是转换标志位
public void stop(){
this.flag = false;
System.out.println("线程停止");
}
public static void main(String[] args) {
Stop stop = new Stop();
new Thread(stop).start();
for (int i = 0; i < 1000; i++) {
System.out.println("main"+i);
if (i==900){
stop.stop();
}
}
}
}
这里我们不难看出 , 线程 stop 在运行 , 而main函数里的for循环也在运行 ( 独立,不影响 ) , 只是我们设置了在 mian 里的 for 运行到 900 时 stop 停止运行.