①建议线程正常停止--->利用次数,不建议死循环
②建议使用标志位----->设置一个标志位
③不要使用stop或destroy等过时或者JDK不建议使用的方法
![](https://img2020.cnblogs.com/blog/1477439/202005/1477439-20200531102501913-345127978.jpg)
package com.chengguo.线程; import java.util.Scanner; /** * 测试stop * ①建议线程正常停止--->利用次数,不建议死循环 * ②建议使用标志位----->设置一个标志位 * ③不要使用stop或destroy等过时或者JDK不建议使用的方法 */ public class Demo_20200509006_StopThread implements Runnable { //设置一个标志位 private boolean flag = true; @Override public void run() { int i = 0; while (flag) System.out.println("run……" + i++); } //设置一个公开的方法停止线程,转换标志位 public void stop() { this.flag = false; } public static void main(String[] args) { //插入键盘输入的知识 Scanner scanner = new Scanner(System.in); System.out.println("输入你想要停止的输:"); int enterNum = scanner.nextInt(); Demo_20200509006_StopThread dst = new Demo_20200509006_StopThread(); new Thread(dst).start(); for (int i = 0; i < 1000; i++) { System.out.println("main:" + i); if (i == enterNum) { //调用stop方法切换标志位,让线程停止 dst.stop(); System.out.println("线程停止……"); } } } }