If I'm going to have a call to have a Java Thread go to sleep, is there a reason to prefer one of these forms over the other?
Thread.sleep(x)
or
TimeUnit.SECONDS.sleep(y)
TimeUnit.SECONDS.sleep(x) will call Thread.sleep. The only difference is readability and using TimeUnit is probably easier to understand for non obvious durations (for example: Thread.sleep(180000) vs. TimeUnit.MINUTES.sleep(3)).
TimeUnit.SECONDS.sleep(x)
Thread.sleep
TimeUnit
Thread.sleep(180000)
TimeUnit.MINUTES.sleep(3)
For reference, see below the code of sleep() in TimeUnit:
sleep()
public void sleep(long timeout) throws InterruptedException { if (timeout > 0) { long ms = toMillis(timeout); int ns = excessNanos(timeout, ms); Thread.sleep(ms, ns); } }
2.1m questions
2.1m answers
60 comments
57.0k users