多线程之线程停止

线程状态

在这里插入图片描述
在这里插入图片描述

线程方法

在这里插入图片描述

停止线程

  • 不推荐使用JDK提供的stop()、destroy()方法。
  • 推荐线程自己停下来
  • 建议使用一个标志位进行终止变量。当flag = false,线程终止。

示例:

package Multithreading;

//测试stop
//1.建议线程正常停止--->利用次数,不建议死循环。
//2.建议使用标志位--->设置一个标志位
//3.不要使用stop或者destroy等过时或者JDK不建议使用的方法

public class TestStop implements Runnable {
    
    
    // 1. 设置一个标志位
    private boolean flag = true;

    @Override

    public void run() {
    
    
        int i = 0;
        while (flag) {
    
    
            System.out.println("Run...." + i++);
        }
    }

    // 2.设置一个公开的方法停止线程
    public void stopThread() {
    
    
        flag = false;
    }

    public static void main(String[] args) {
    
    
        TestStop testStop = new TestStop();
        new Thread(testStop).start();
        for (int i = 0; i < 100; i++) {
    
    
            System.out.println("main()");
            if (i == 90) {
    
    
//                调用stopThread方法切换标志位,停止线程
                testStop.stopThread();
                System.out.println("线程停止");
            }
        }
    }
}

运行结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/I_r_o_n_M_a_n/article/details/113936899