在无限循环中Thread.sleep()有什么好处吗?

时间:2014-05-07 20:29:40

标签: java multithreading

我有一个构造,其中变量根据应用程序打开的时间不断更新。

while (playTime < allowedTime) {
    endTimeSec = (int) (System.currentTimeMillis() / MILLISECONDS);
    playTime = endTimeSec - startTime;
}

此检查始终在与我的实际应用程序所在位置不同的线程上运行。我的问题是,由于我基本上只关注精度到第二次,每次循环迭代时都有Thread.sleep(1000)会有什么好处吗?

1 个答案:

答案 0 :(得分:9)

是的,在这种情况下,Thread.sleep(1000);会带来好处。这将使您的Thread暂停一会儿,因此在此期间它不会占用CPU资源。

就好像你带孩子去度假一样长途跋涉。而不是孩子们问“我们还在吗?”每微秒一次,他们会每秒询问一次。那是很多更好。