如何退出线程

Posted moris5013

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何退出线程相关的知识,希望对你有一定的参考价值。

退出线程主要的思路是用一个标志位或者是使用线程的中断方法

下面的例子是可以确保调用shutdown()方法,无论线程是否在休眠中,线程都会退出

public class ThreadTest extends Thread {

    private volatile boolean exit = false;

    @Override
    public void run() {

        while (!exit) {
            try {
                System.out.println("######");
                Thread.sleep(10000);  //休眠中了,shutdown(),会结束线程
                System.out.println("^^^^^^^^^"); //正在执行这行代码时,shutdown(),exit被修改为true了,退出循环了,线程结束
            } catch (InterruptedException e) {
                exit = true;
                e.printStackTrace();
                break;
            }
        }
    }

    
    public void shutdown() {
        exit = true;
        this.interrupt();
    }
    
    
    public static void main(String[] args) throws InterruptedException {
        ThreadTest thread = new ThreadTest();
        thread.start();
        Thread.sleep(3000);
        thread.shutdown();
    }
}

 

以上是关于如何退出线程的主要内容,如果未能解决你的问题,请参考以下文章

线程应当如何正常退出?

scrapy主动退出爬虫的代码片段(python3)

pyqt:如何正确退出线程

多线程编程

主线程创建了子线程,怎么让主线程退出,而子线程仍然运行

如何在Python中退出主线程并使子线程在后台继续运行