Outra opção éThread.sleep(Duration.ofSeconds(s).toMillis())
cambunctious
Respostas:
122
TimeUnit.SECONDS.sleep(x)vai ligar Thread.sleep. A única diferença é a legibilidade e o uso TimeUnité provavelmente mais fácil de entender para durações não óbvias (por exemplo: Thread.sleep(180000)vs. TimeUnit.MINUTES.sleep(3)).
Para referência, veja abaixo o código de sleep()em TimeUnit:
Concordo. Se você quiser declarar que seu tempo de sono é uma constante que pode ser alterada posteriormente, digamos, de 1 minuto a 10 segundos, uma solução é public static final long SLEEPING_TIME = TimeUnit.MINUTES.toMillis(1);. Isso permite, Thread.sleep()mas mantém a vantagem de legibilidade de TimeUnit.
Ole VV
8
Eles são os mesmos. Eu prefiro o último porque é mais descritivo e permite escolher unidade de tempo (ver TimeUnit): DAYS, HOURS, MICROSECONDS, MILLISECONDS, MINUTES, NANOSECONDS, SECONDS.
argumentativo: Prefiro o primeiro - quero que o tópico durma, não o SECONDSou MILLISECONDS[:-)
user85421
3
@CarlosHeuberger: bem, você pode ler como sleep for xSECONDS , mas com certeza é uma questão de gosto. Por outro lado, observe que o método sleep()está staticativado Thread- então pode-se argumentar que não está claro qual fio deve dormir (o que Thread myThread = ...; myThread.sleep()significa?)
Tomasz Nurkiewicz
6
@CarlosHeuberger Seria muito melhor poder escreverThread.sleep(3, TimeUnit.SECONDS)
assylias
Atualizado para remover qualquer confusão sobre equivalência por causa das unidades escolhidas
Rachel
@assylias Eu concordo, mas infelizmente não posso mudar isso [: - |
Thread.sleep(Duration.ofSeconds(s).toMillis())
Respostas:
TimeUnit.SECONDS.sleep(x)
vai ligarThread.sleep
. A única diferença é a legibilidade e o usoTimeUnit
é provavelmente mais fácil de entender para durações não óbvias (por exemplo:Thread.sleep(180000)
vs.TimeUnit.MINUTES.sleep(3)
).Para referência, veja abaixo o código de
sleep()
emTimeUnit
:fonte
public static final long SLEEPING_TIME = TimeUnit.MINUTES.toMillis(1);
. Isso permite,Thread.sleep()
mas mantém a vantagem de legibilidade deTimeUnit
.Eles são os mesmos. Eu prefiro o último porque é mais descritivo e permite escolher unidade de tempo (ver
TimeUnit
):DAYS
,HOURS
,MICROSECONDS
,MILLISECONDS
,MINUTES
,NANOSECONDS
,SECONDS
.fonte
SECONDS
ouMILLISECONDS
[:-)SECONDS
, mas com certeza é uma questão de gosto. Por outro lado, observe que o métodosleep()
estástatic
ativadoThread
- então pode-se argumentar que não está claro qual fio deve dormir (o queThread myThread = ...; myThread.sleep()
significa?)Thread.sleep(3, TimeUnit.SECONDS)