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

标签 java multithreading

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

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

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

最佳答案

是的,在这种情况下 Thread.sleep(1000); 有好处。这将使您的 Thread hibernate 一秒钟,因此它在此期间不会消耗 CPU 资源。

这就好像您要带着您的 child 乘长途汽车去度假。而不是 children 问“我们到了吗?”每微秒一次,他们将每秒询问一次。这好多了。

关于java - Thread.sleep() 在无限循环中有什么好处吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23527758/

相关文章:

java - 我们能否以更简单的方式解决这个 socks 商人问题?

c++ - 线程间并发无锁?

java - 派生的 TimerTask 类中出现错误 : `Can' t create handler inside thread that has not called Looper. 准备()`

multithreading - 为什么没有 Qt 连接模式在 Qt::DirectConnection 和 Qt::BlockingQueuedConnection 之间自动选择?

java - 如何中断线程并捕获 Runnable 对象中的中断

java - 使用泛型时在变量分配中出错

c# - 任何人都可以解释图形数据结构的 java 或 C# 实现吗

java - 一个 CPU 上一次可以运行多少个线程

java - 在 intellij 中进行单步调试时如何保持在当前线程上

java - Struts 2 文本字段即使没有 value 属性也会显示值