TimeUnit.SECONDS.sleep(10)
和Thread.sleep(10 * 1000)
都可以用于线程休眠
代码如下:
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.concurrent.TimeUnit;
/**
* @program: moon-cloud-car
* @author: 阿水
* @create: 2023-05-29 12:08
**/
public class Test {
public static void main(String[] args) throws InterruptedException {
// 获取当前时间
LocalDateTime beginTime = LocalDateTime.now();
// 定义日期时间格式
DateTimeFormatter beginFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
// 格式化当前时间
String beginTimeStr = beginTime.format(beginFormatter);
// 输出当前年月日时分秒
System.out.println("开始时间:" + beginTimeStr);
TimeUnit.SECONDS.sleep(5);
// 获取当前时间
LocalDateTime endTime = LocalDateTime.now();
// 定义日期时间格式
DateTimeFormatter endFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
// 格式化当前时间
String endTimeStr = endTime.format(endFormatter);
System.out.println("结束时间:" + endTimeStr);
}
}
他们都会抛出的异常是InterruptedException,
需要进行适当的异常处理。但它们有一些区别。
单位表示:
-
TimeUnit.SECONDS.sleep(10)
中的TimeUnit.SECONDS
表示等待时间的单位是秒。 -
Thread.sleep(10 * 1000)
中的10 * 1000
表示等待时间的单位是毫秒。
代码可读性:
-
TimeUnit.SECONDS.sleep(10)
更直观地表达了等待时间是10秒。 -
Thread.sleep(10 * 1000)
需要进行乘法运算,并且单位是毫秒,可读性稍差一些。
单位转换:
-
TimeUnit.SECONDS.sleep(10)
直接使用秒作为单位,无需手动进行单位转换。 -
Thread.sleep(10 * 1000)
需要将秒转换为毫秒进行计算。
综上所述,TimeUnit.SECONDS.sleep(10)
在可读性和代码清晰性方面略胜一筹,而Thread.sleep(10 * 1000)
则需要手动进行单位转换,并且可读性稍差。两者在功能上是等效的,选择使用哪种方式取决于个人偏好和代码风格。
如果您想使用其他时间单位进行休眠,可以使用 TimeUnit
类中提供的其他时间单位常量,例如:
TimeUnit.MILLISECONDS.sleep(1000)
:表示休眠 1000 毫秒(1 秒)。TimeUnit.MINUTES.sleep(5)
:表示休眠 5 分钟。TimeUnit.HOURS.sleep(2)
:表示休眠 2 小时。TimeUnit.DAYS.sleep(1)
:表示休眠 1 天。
根据实际需要,选择适合的时间单位进行休眠操作。注意在使用不同的时间单位时,需要根据单位进行适当的数值转换。
今天的文章sleep(1000)方法,将使得该线程_java多线程sleep[通俗易懂]分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/57739.html