虽然循环减慢了?

时间:2018-03-15 22:41:46

标签: java

我试图在等待条件满足的同时每隔一秒左右打印一个日期。 这是我提出的代码:

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);

    }
}

现在,这可以在前几次工作,但是,在某些时候它会减速并停止工作(我不确定它是否完全停止,但肯定不会像我想的那样快速打印)。

有更好的方法吗?

1 个答案:

答案 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);
}