原来使用sleep方法是这样的:
Thread.sleep(1000);
跟进sleep()方法源码看下:
public static native void sleep(long millis) throws InterruptedException;
可以发现是个本地方法,不过这里更关键的是,参数millis是long类型的,也就是说不管我们是要休眠1秒,1分钟,1小时,1天等,我们都要换算成毫秒作为参数传入才是我们想要的正确结果。
使用另一种优雅的写法
TimeUnit.SECONDS.sleep(1);
这段代码就等价于【Thread.sleep(1000)】
从截图可以看到,有很多单位都已经定义好了,现拿现用,无需计算。
总结
简单的做了一个比较优雅的sleep方法写法,因为我觉得用第二种方法,我们不仅可以少去一些计算的时候,别的开发者也能够很容易的看出休眠的具体时间,总不能让其他看我们代码的人也再去算一遍(不是每个人都会写注释的,所以能用代码解决的阅读问题,就不要写在注释上)。