TimeUnit的用法
来源:互联网 发布:it运维管理软件 编辑:程序博客网 时间:2024/06/10 17:32
一、概述
TimeUnit是java.util.concurrent包下面的一个类,表示给定单元粒度的时间段
作用:
1、时间颗粒度转换
2、延时
二、TimeUnit类介绍
public enum TimeUnit { NANOSECONDS {//纳秒 public long toNanos(long d) { return d; } public long toMicros(long d) { return d/(C1/C0); } public long toMillis(long d) { return d/(C2/C0); } public long toSeconds(long d) { return d/(C3/C0); } public long toMinutes(long d) { return d/(C4/C0); } public long toHours(long d) { return d/(C5/C0); } public long toDays(long d) { return d/(C6/C0); } public long convert(long d, TimeUnit u) { return u.toNanos(d); } int excessNanos(long d, long m) { return (int)(d - (m*C2)); } }, MICROSECONDS {// 微秒 public long toNanos(long d) { return x(d, C1/C0, MAX/(C1/C0)); } public long toMicros(long d) { return d; } public long toMillis(long d) { return d/(C2/C1); } public long toSeconds(long d) { return d/(C3/C1); } public long toMinutes(long d) { return d/(C4/C1); } public long toHours(long d) { return d/(C5/C1); } public long toDays(long d) { return d/(C6/C1); } public long convert(long d, TimeUnit u) { return u.toMicros(d); } int excessNanos(long d, long m) { return (int)((d*C1) - (m*C2)); } }, MILLISECONDS {//毫秒 public long toNanos(long d) { return x(d, C2/C0, MAX/(C2/C0)); } public long toMicros(long d) { return x(d, C2/C1, MAX/(C2/C1)); } public long toMillis(long d) { return d; } public long toSeconds(long d) { return d/(C3/C2); } public long toMinutes(long d) { return d/(C4/C2); } public long toHours(long d) { return d/(C5/C2); } public long toDays(long d) { return d/(C6/C2); } public long convert(long d, TimeUnit u) { return u.toMillis(d); } int excessNanos(long d, long m) { return 0; } }, SECONDS {//秒 public long toNanos(long d) { return x(d, C3/C0, MAX/(C3/C0)); } public long toMicros(long d) { return x(d, C3/C1, MAX/(C3/C1)); } public long toMillis(long d) { return x(d, C3/C2, MAX/(C3/C2)); } public long toSeconds(long d) { return d; } public long toMinutes(long d) { return d/(C4/C3); } public long toHours(long d) { return d/(C5/C3); } public long toDays(long d) { return d/(C6/C3); } public long convert(long d, TimeUnit u) { return u.toSeconds(d); } int excessNanos(long d, long m) { return 0; } }, MINUTES {//分 public long toNanos(long d) { return x(d, C4/C0, MAX/(C4/C0)); } public long toMicros(long d) { return x(d, C4/C1, MAX/(C4/C1)); } public long toMillis(long d) { return x(d, C4/C2, MAX/(C4/C2)); } public long toSeconds(long d) { return x(d, C4/C3, MAX/(C4/C3)); } public long toMinutes(long d) { return d; } public long toHours(long d) { return d/(C5/C4); } public long toDays(long d) { return d/(C6/C4); } public long convert(long d, TimeUnit u) { return u.toMinutes(d); } int excessNanos(long d, long m) { return 0; } }, HOURS {//时 public long toNanos(long d) { return x(d, C5/C0, MAX/(C5/C0)); } public long toMicros(long d) { return x(d, C5/C1, MAX/(C5/C1)); } public long toMillis(long d) { return x(d, C5/C2, MAX/(C5/C2)); } public long toSeconds(long d) { return x(d, C5/C3, MAX/(C5/C3)); } public long toMinutes(long d) { return x(d, C5/C4, MAX/(C5/C4)); } public long toHours(long d) { return d; } public long toDays(long d) { return d/(C6/C5); } public long convert(long d, TimeUnit u) { return u.toHours(d); } int excessNanos(long d, long m) { return 0; } }, DAYS {//天 public long toNanos(long d) { return x(d, C6/C0, MAX/(C6/C0)); } public long toMicros(long d) { return x(d, C6/C1, MAX/(C6/C1)); } public long toMillis(long d) { return x(d, C6/C2, MAX/(C6/C2)); } public long toSeconds(long d) { return x(d, C6/C3, MAX/(C6/C3)); } public long toMinutes(long d) { return x(d, C6/C4, MAX/(C6/C4)); } public long toHours(long d) { return x(d, C6/C5, MAX/(C6/C5)); } public long toDays(long d) { return d; } public long convert(long d, TimeUnit u) { return u.toDays(d); } int excessNanos(long d, long m) { return 0; } };
三、用法
延迟:
@Testpublic void testTime(){new Thread( new Runnable() { @Override public void run() { try {TimeUnit.SECONDS.sleep(10);System.out.println("延时10秒,完成了"); } catch (InterruptedException e) { e.printStackTrace(); } }}).start();}
结合redis在项目中的使用
String key = RedisKeyUtils.getUserTokenKey(userId);BoundValueOperations<String, String> options = redisTemplate.boundValueOps(key);options.set(token);options.expire(15, TimeUnit.DAYS);
0 0
- 0013-TimeUnit的用法
- TimeUnit的用法
- TimeUnit用法
- TimeUnit用法
- TimeUnit用法
- TimeUnit 用法简介
- java TimeUnit vs Thread.sleep的用法对比
- java中TimeUnit vs Thread.sleep的用法对比
- TimeUnit.convert 用法简单介绍
- TimeUnit的使用
- TimeUnit的简略介绍
- TimeUnit
- TimeUnit
- TimeUnit
- TimeUnit
- TimeUnit
- TimeUnit
- TimeUnit用法,Date,MessageFormat 联合使用
- JMeter专题系列(四)参数化
- 采用CreateThread()创建多线程程序 MFC
- Json数据
- JMeter专题系列(五)检查点
- JMeter专题系列(六)集合点
- TimeUnit的用法
- JMeter专题系列(七)聚合报告之 90% Line
- HttpClient在HTTP协议接口测试中的使用
- 性能测试之----瓶颈分析方法
- Ant_build.xml的最完整解释
- LoadRunner 实现监控Tomcat
- linux awk命令详解
- Android 7.0Settings加载主界面流程
- 支付宝沙箱环境使用