1
24
不,没有内置的结构可以做到这一点。 我想指出,您不应该使用System.CurrentTimeMillis()来执行或延迟指定时间段的任务。而是使用System.NanoTime()。前一种方法在Windows中不准确,后一种方法不考虑操作系统而准确。您可以使用TimeUnit枚举轻松地在以毫秒为单位的时间或任何其他时间单位与以纳秒为单位的时间之间切换。
|
2
10
我想这就是你想要的:
这样可以避免重复执行系统调用以获取系统时钟值(这可能非常昂贵),并轮询当前线程的
编辑
实际上没有
安全的
可选择轮询时钟或轮询标志。理论上,您可以修改上面的片段来调用
贬低
(我)
不是
推荐使用
编辑2
只是为了指出使用
编辑3
只是为了补充一下
|
3
3
我为这个问题做了一个简单但很糟糕的实现。我想避免计时器和时间任务,最终得到了这个快速修复解决方案。 主要的想法是我只想创建一个独立的倒计时计时器,我可以启动它并调用isFinished()来检查倒计时是否完成。
|
4
1
下面是另一个建议:
}
方法执行
考虑事项:
|
5
1
不。考虑到简单地编写一个使用System.CurrentTimeMillis()的函数(或您选择的任何时间函数)有多简单,这是一种奇怪的请求。更多的情况可能是有序的。 |
6
0
我不认为有一种方法可以循环一段时间而不检查是否循环了一段时间。 |
7
0
根据您的用例,类中的两个sleep()方法之一 Thread 可以 符合要求,但听起来你必须对System.CurrentTimeMillis()大惊小怪,这看起来很奇怪。
|
8
0
循环在值比较上迭代,而不是在持续时间内迭代。因此,如果没有自己分配和比较系统时间,就无法完成。 如果您希望它是直观的,那么您可以有一个内部使用毫秒的函数,但需要几分钟作为参数并使用它。 不,不能在其中使用线程或sleep方法,因为这不能确保准确的时间。如果在给定的时间过后,处理器正忙于处理其他线程,那么线程将继续等待。 |