我现在正在学习Java中的类和继承。我做了一个简单的RPG游戏。 现在我尝试使用多线程,但它不起作用。 我希望输出每30秒出现一次。 “自比赛开始以来已经过了30秒。”像这样.. 数字会随着时间的推移而增长。 我该怎么办? 实际上,我不会说英语,这可能很尴尬.. 我等你的回答。谢谢!
//import java.util.Timer;
import java.util.TimerTask;
public class Timer extends Thread {
int count = 0;
Timer m_timer = new Timer();
TimerTask m_task = new TimerTask() {
public void run() {
count++;
System.out.println("It's been 30 seconds since the game started.");
}
};
m_timer.schedule(m_task, 1000, 1000);
};
主:
public class Main {
public static void main(String[] args) {
Timer m_timer = new Timer();
m_timer.start();
}
}
答案 0 :(得分:0)
如果您对了解并发感兴趣,可以先阅读Java Tutorial。我意识到你说英语不是你的母语,但也许你可以按照这些教程中提供的代码。
您似乎只是想尝试实现一个简单的示例,因此我将提供以下代码:
import java.util.Timer;
import java.util.TimerTask;
public class TimerMain {
public static void main(String[] args) {
Timer timer = new Timer();
TimerTask task = new TimerTask(){
private int count = 0;
@Override
public void run() {
count++;
System.out.println("Program has been running for " + count + " seconds.");
}
};
timer.schedule(task, 1000, 1000);
//Make the main thread wait a while so we see some output.
try {
Thread.sleep(5500);
} catch (InterruptedException e) {
e.printStackTrace();
}
//Stop the timer.
timer.cancel();
}
}
正如其他人指出的那样,如果你需要高度的准确性,你应该采用不同的方法。我找到了关于时间准确性的this question。