gpt4 book ai didi

java - 我怎样才能让我的线程进入休眠状态

转载 作者:行者123 更新时间:2023-12-01 13:01:35 26 4
gpt4 key购买 nike

我目前正在尝试为我的 libgdx 游戏创建暂停状态。当按下暂停按钮时,暂停变量变为 true,我试图让名为 t3 的倒计时器线程 hibernate 几秒钟。然而,当我这样做时,计时器继续倒计时,但我的渲染方法似乎进入休眠状态。我不明白为什么会发生这种情况,您能否帮助我理解为什么以及如何让我的倒数计时器线程进入休眠状态。我的计时器类实现了可运行的。

tim = new timer();  //on create start the countdown timer thread
t3 = new Thread(tim);//name of countdown timer thread
t3.start();//start the thread

if (paused == true) {
System.out.println(paused);
try {
t3.sleep(5000); //put the countdown timer thread to sleep for 5s
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
paused = false;



//this is the run method for the timer class aka the countdown
public void run() {

while (timekeeper.TimerRunning == true) {
System.out.println(Timekeeper.gettimer());
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

if (Timekeeper.gettimer().get() == 0) {

timekeeper.TimerRunning = false;

} else {

Timekeeper.gettimer().decrementAndGet();

}

}

}

最佳答案

sleep 是一个静态函数,在调用它的线程上运行,在本例中,线程拥有 t3 对象,而不是 t3 线程本身,我假设它是您的渲染线程。这就是渲染线程进入休眠状态的原因。

要让倒计时线程进入休眠状态,您需要要求倒计时线程调用 sleep 本身,例如向其发送消息。

关于java - 我怎样才能让我的线程进入休眠状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23480272/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com