博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
TimeUnit使用
阅读量:5906 次
发布时间:2019-06-19

本文共 1740 字,大约阅读时间需要 5 分钟。

hot3.png

参考网页

Thread.sleep还是TimeUnit.SECONDS.sleep--使用TimeUnit

TimeUnit可读性更强

举例子,sleep时间为3秒。

Thread.sleep的写法

private final int SLEEP_TIME = 3 * 1000; //3 seconds

void sleepDemo() throws InterruptedException{
    Thread.sleep(SLEEP_TIME);
}

TimeUnit的写法

void sleepDemo() throws InterruptedException{

    TimeUnit.SECONDS.sleep(3);
}

比较--很明显TimeUnit可读性更强

效率上TimeUnit不落下风

示例代码

import java.util.concurrent.TimeUnit;public class TestSleep {    public static void main(String[] args) throws InterruptedException {        sleepByTimeUnit(10);        sleepByThread(10);    }    //使用 TimeUnit 睡 10s    private static void sleepByTimeUnit(int sleepTimes) throws InterruptedException {        long start = System.currentTimeMillis();        TimeUnit.SECONDS.sleep(10);        long end = System.currentTimeMillis();        System.out.println("Total time consumed by TimeUnit : " + (end - start));    }    //使用 Thread.sleep 睡 10s    private static void sleepByThread(int sleepTimes) throws InterruptedException {        long start = System.currentTimeMillis();        Thread.sleep(10 * 1000);        long end = System.currentTimeMillis();        System.out.println("Total time consumed by Thread.sleep : " + (end - start));    }}

打印结果

Total time consumed by TimeUnit : 10001

Total time consumed by Thread.sleep : 10015

分析

TimeUnit做了封装,但是相对于 Thread.sleep 效率仍然不落下风。

TimeUnit其他使用--时间转换工具

例子代码

import java.util.concurrent.TimeUnit;public class TimeUnitUseDemo {    public static void main(String[] args) {        long seconds = TimeUnit.HOURS.toSeconds(2);        System.out.println("Spend seconds:" + seconds);    }}

打印结果

Spend seconds:7200

说明

可见,TimeUnit可以被用作时间转换的工具类。

TimeUnit是枚举实现一个很好的实例

TimeUnit 是 Doug Lea 写的,Doug Lea很神

转载于:https://my.oschina.net/u/3866531/blog/2245065

你可能感兴趣的文章
开发常用动画收集
查看>>
nginx js、css多个请求合并为一个请求(concat模块)
查看>>
mybatis实战教程(mybatis in action)之五:与spring3集成
查看>>
解决浏览器Adobe Flash Player不是最新版本问题
查看>>
SQLite 约束
查看>>
Python爬虫学习——使用Cookie登录新浪微博
查看>>
linux配置网络
查看>>
vsftp 500 OOPS: cannot change directory:/home/xyp
查看>>
MVC ---- EF的安装于卸载
查看>>
WebRTC 学习之 概念总结
查看>>
Java对ad操作
查看>>
unity与android交互总结
查看>>
h5 微场景
查看>>
linux下uboot kernel操作cpu寄存器
查看>>
(转)PaperWeekly 第二十二期---Image Caption任务综述
查看>>
raspi-config Expand root partition to fill SD card 原理
查看>>
maven generating project in batch mode hang
查看>>
Excel与XML相互转换 - C# 简单实现方案
查看>>
远程通信的几种选择(RPC,Webservice,RMI,JMS的区别)
查看>>
基础二:javascript面向对象、创建对象、原型和继承总结(下)
查看>>