跳转至

优雅的停止线程

class Message {
    public boolean flagStop = false;// 标记 true=停止线程

}

class StopThread implements Runnable {
    private Message message;// 仓库

    public StopThread(Message message) {
        this.message = message;
    }

    @Override
    public void run() {
        for (int i = 0; i < Long.MAX_VALUE; i++) {
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            if (message.flagStop) {
                System.out.println("结束进程");
                break;
            }
            System.out.print(">");
        }
    }
}
public class TestDemo {
    public static void main(String[] args) throws InterruptedException {
        Message message = new Message();
        StopThread thread = new StopThread(message);
        new Thread(thread).start();
        Thread.sleep(10000);
        message.flagStop = true;
    }
}