IQIUM 2020-05-06 10:54 采纳率: 0%
浏览 143

请问JAVA中在控制线程终止的时后用run做终止标记的放置位置有没有什么要求?/

class theThread implements Runnable {
    boolean run = true;

    @Override
    public void run() {
        if (run) {
            for (int i = 0; i < 10; ++i) {
                System.out.println(Thread.currentThread().getName() + "----->" + (i + 1));
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        } else {
            return;
        }
    }
}

刚刚学到线程,对这个问题很是不解。如果按我这样写的话是不会起到控制线程的作用的,必须把run判断放置在for循环的下面才可以,即:

class theThread implements Runnable {
    boolean run = true;

    @Override
    public void run() {
        for (int i = 0; i < 10; ++i) {
            if (run) {
                System.out.println(Thread.currentThread().getName() + "----->" + (i + 1));
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            } else {
                return;
            }
        }

    }
}

请问各位大佬,这是为什么??

  • 写回答

3条回答 默认 最新

  • xznao_xin 2021-01-06 20:08
    关注

    我不知道呀

    评论

报告相同问题?