Javaスレッドをスリープ状態にする呼び出しを行う場合、これらの形式の一方を他方よりも優先する理由はありますか?
Thread.sleep(x)
または
TimeUnit.SECONDS.sleep(y)
TimeUnit.SECONDS.sleep(x)
は _Thread.sleep
_ を呼び出します。唯一の違いは読みやすさであり、 TimeUnit
を使用すると、おそらく明らかでない期間で理解しやすくなります(例:Thread.sleep(180000)
vs. TimeUnit.MINUTES.sleep(3)
) 。
参考として、以下の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);
}
}
_
それらは同じです。後者のほうがわかりやすく、時間単位を選択できるため、後者の方が好きです( TimeUnit
を参照):DAYS
、HOURS
、MICROSECONDS
、MILLISECONDS
、MINUTES
、NANOSECONDS
、SECONDS
。