我试图在等待条件满足的同时每隔一秒左右打印一个日期。 这是我提出的代码:
boolean whileControl = true;
int whileCount = 0;
while (whileControl == true) {
if (isTrue() == true) {
whileControl = false;
//stuff
break;
} else {
whileCount += 1;
if (whileCount >= 1000000) {
whileCount = 0;
String date = DateFormat.getDateTimeInstance().format(new Date(System.currentTimeMillis()));
System.out.println(date);
}
}
现在,这可以在前几次工作,但是,在某些时候它会减速并停止工作(我不确定它是否完全停止,但肯定不会像我想的那样快速打印)。
有更好的方法吗?
答案 0 :(得分:0)
可能放缓的原因是isTrue()
被调用了太多次并受到限制,因为您正在检查这种情况,而且在任何两次连续检查之间没有任何等待时间。
尝试:
int whileCount = 0;
while (true) {
if (isTrue()) {
//stuff
break;
}
whileCount++;
if (whileCount >= 1000000) {
whileCount = 0;
System.out.println(DateFormat.getDateTimeInstance().format(new Date()));
}
// Sleep 1 second before another check
Thread.sleep(1000);
}