如果我打算让一个Java线程进入睡眠状态,是否有理由更喜欢这些形式之一?
Thread.sleep(x)
Run Code Online (Sandbox Code Playgroud)
要么
TimeUnit.SECONDS.sleep(y)
Run Code Online (Sandbox Code Playgroud)
ass*_*ias 111
TimeUnit.SECONDS.sleep(x)
会打电话Thread.sleep
.唯一的区别是可读性和使用TimeUnit
可能更容易理解非显而易见的持续时间(例如:Thread.sleep(180000)
vs 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);
}
}
Run Code Online (Sandbox Code Playgroud)
他们是一样的.我更喜欢后者,因为它是更具描述性的,并允许选择时间单位(见TimeUnit
): ,DAYS
,HOURS
,MICROSECONDS
,MILLISECONDS
,MINUTES
,.NANOSECONDS
SECONDS
归档时间: |
|
查看次数: |
67424 次 |
最近记录: |