请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

正在回答

2回答

悟空 2019-09-20 11:27:53

5.6退出循环的代码在git更新了,就是在catch时,增加一个Thread.currentThread().interrupt();

代码如下:

public class RightWayStopThreadInProd implements Runnable {

    @Override
    public void run() {
        while (true && !Thread.currentThread().isInterrupted()) {
            System.out.println("go");
            try {
                throwInMethod();
            } catch (InterruptedException e) {
                Thread.currentThread().interrupt();
                //保存日志、停止程序
                System.out.println("保存日志");
                e.printStackTrace();
            }
        }
    }

    private void throwInMethod() throws InterruptedException {
            Thread.sleep(2000);
    }

    public static void main(String[] args) throws InterruptedException {
        Thread thread = new Thread(new RightWayStopThreadInProd());
        thread.start();
        Thread.sleep(1000);
        thread.interrupt();
    }
}


2 回复 有任何疑惑可以回复我~
  • imheyan #1
    public class RightWayStopThreadInProd implements Runnable {
     
        @Override
        public void run() {
            while (true) {
                System.out.println("go");
                try {
                    throwInMethod();
                } catch (InterruptedException e) {
                    Thread.currentThread().interrupt();
                    //保存日志、停止程序
                    System.out.println("保存日志");
                    e.printStackTrace();
                    return;
                }
            }
        }
     
        private void throwInMethod() throws InterruptedException {
                Thread.sleep(2000);
        }
     
        public static void main(String[] args) throws InterruptedException {
            Thread thread = new Thread(new RightWayStopThreadInProd());
            thread.start();
            Thread.sleep(1000);
            thread.interrupt();
        }
    }
    1. 请问老师不重新设置interrupt标志位,直接return或者break结束也可以吧?
    回复 有任何疑惑可以回复我~ 2022-04-13 16:42:32
  • 悟空 回复 imheyan #2
    也可以
    回复 有任何疑惑可以回复我~ 2022-04-13 17:04:04
提问者 甘林峰 2019-09-20 11:33:44

谢谢了

0 回复 有任何疑惑可以回复我~

相似问题

登录后可查看更多问答,登录/注册

问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信