1. ホーム
  2. java

[解決済み] Thread.sleepとTimeUnit.SECONDS.sleepの比較

2022-10-30 21:11:55

質問

Java Thread をスリープさせる呼び出しがある場合、これらのフォームのいずれかを他よりも優先する理由はありますか?

Thread.sleep(x)

または

TimeUnit.SECONDS.sleep(y)

どのように解決するのですか?

TimeUnit.SECONDS.sleep(x) を呼び出します。 Thread.sleep . 唯一の違いは可読性で TimeUnit の方が明らかでない持続時間の場合、おそらくわかりやすいでしょう(例えば。 Thread.sleep(180000)TimeUnit.MINUTES.sleep(3) ).

参考までに、以下の sleep()TimeUnit :

public void sleep(long timeout) throws InterruptedException {
    if (timeout > 0) {
        long ms = toMillis(timeout);
        int ns = excessNanos(timeout, ms);
        Thread.sleep(ms, ns);
    }
}