本文主要是介绍java并发包中的TimeUnit的使用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在学java多线程时,发现在关于时间的设置时,有个枚举会经常用到,这个枚举就是TimeUnit。对此产生了兴趣,查阅网上资料与源码后,记录下学到的知识,以便下次看博客时记起来:
首先 TimeUnit是java.util.concurrent包下面的一个类,表示给定单元粒度的时间段
一、主要作用
a.时间颗粒度转换
b.延时
二、举个例子
-
常用的颗粒度
TimeUnit.DAYS //天
TimeUnit.HOURS //小时
TimeUnit.MINUTES //分钟
TimeUnit.SECONDS //秒
TimeUnit.MILLISECONDS //毫秒
常用方法:
public long toMillis(long d) //转化成毫秒
public long toSeconds(long d) //转化成秒
public long toMinutes(long d) //转化成分钟
public long toHours(long d) //转化成小时
public long toDays(long d) //转化天 -
时间颗粒度转换
package com.app;import java.util.concurrent.TimeUnit;public class Test {public static void main(String[] args) {//1天有24个小时 1代表1天:将1天转化为小时System.out.println( TimeUnit.DAYS.toHours( 1 ) );//结果: 24//1小时有3600秒System.out.println( TimeUnit.HOURS.toSeconds( 1 ));//结果3600//把3天转化成小时System.out.println( TimeUnit.HOURS.convert( 3 , TimeUnit.DAYS ) );//结果是:72}
}
- 延时
一般的写法package com.app;public class Test2 {public static void main(String[] args) {new Thread( new Runnable() {@Overridepublic void run() {try {Thread.sleep( 5 * 1000 );System.out.println( "延时完成了");} catch (InterruptedException e) {e.printStackTrace();}}}).start(); ;}}
TimeUnit 写法
package com.app;import java.util.concurrent.TimeUnit;public class Test2 {public static void main(String[] args) {new Thread( new Runnable() {@Overridepublic void run() {try {TimeUnit.SECONDS.sleep( 5 );System.out.println( "延时5秒,完成了");} catch (InterruptedException e) {e.printStackTrace();}}}).start(); ;}
}
本文参考:https://www.cnblogs.com/zhaoyanjun/p/5486726.html
这篇关于java并发包中的TimeUnit的使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!