我发现经常需要等到下一秒才能执行系列中的下一个操作。这大大减慢了单元测试的速度。所以这是我的问题:
除了执行 Thread.sleep(1000) 之外,是否有更快更有效的 sleep 方式,直到秒变为下一秒?
假设时间是 1:00:89
我睡一秒钟到 1:01:89
我宁愿在时间到达 1:01 时继续执行 或尽可能接近。
这合理吗? ^_^
最佳答案
好吧,你可以这样做:
long millisWithinSecond = System.currentTimeMillis() % 1000;
Thread.sleep(1000 - millisWithinSecond);
请注意,这并不准确 - 您可能需要迭代,这有点困惑。
但是,最好不要 sleep 。你能注入(inject)一个“ sleep 服务”,让你在测试中伪造 sleep 吗? (我很少需要这样做,但我经常注入(inject)一个假时钟来报告不同的时间。) hibernate 在生产代码中的目的到底是什么?
关于java - 睡到下一秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3561308/