基于条件的java停止、关闭、结束、线程

基于条件的java停止、关闭、结束、线程,java,multithreading,runnable,Java,Multithreading,Runnable,我不知道如何让它工作。我希望此踏板停止一次(startNumber==0 | | |!Player.cCounting)!Player.cCounting是一个可访问的布尔值。如果满足任一条件,我希望循环停止 public class Console { static long lastTime; static boolean cCounting = true; static long seconds = 0; static long delta = 0;

我不知道如何让它工作。我希望此踏板停止一次
(startNumber==0 | | |!Player.cCounting)
<代码>!Player.cCounting是一个可访问的
布尔值。如果满足任一条件,我希望循环停止

public class Console {

    static long lastTime;
    static boolean cCounting = true;
    static long seconds = 0;
    static long delta = 0;
    static int startNumber = (int) Level.cookieTime / 1000;
    Thread countDown;

    public Console() {

        cookieCountDown();
        lastTime = System.currentTimeMillis();
    }

    public void cookieCountDown() {
        countDown = new Thread(new Runnable() {
            @Override
            public void run() {
                startNumber = (int) Level.cookieTime / 1000;
                while (startNumber != 0) {

                    cCounting = Game.enter;
                    //System.out.println(cCounting);
                    try {
                        Thread.sleep(0);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }

                    while (startNumber > 0 && cCounting) {
                        long now = System.currentTimeMillis();
                        delta = now - lastTime;

                        if (delta >= 1000) {
                            delta = 0;
                            lastTime = System.currentTimeMillis();
                            System.out.println("cookie " + startNumber);// print countdown;
                            startNumber--;
                            System.out.println(Player.cCounting);
                            if (Player.cCounting = false) {
                                end();
                            }
                        }
                    }
                }
            }
        });
        countDown.start();
    }

    public void end() {
        System.out.println(startNumber);
        System.out.println(cCounting);
        if (startNumber == 0 || !Player.cCounting) {
            System.out.println("stop");
            //countDown.interrupt();
            //countDown.stop();
        }
    }
}

你只需要退出你的循环。替换
end()方法调用,返回
return。并使
startNumber
Player.cCounting
volatile
例如
volatile static int startNumber