基于条件的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