目录

  • 前言
  • 1. 源码
    • 1.1 TimeUnit.SECONDS.sleep()
    • 1.2 Thread.sleep()
  • 2. 代码实战
  • 3. 代码对比

前言

TimeUnit是java.util.concurrent包下的一个类名
主要功能是暂停线程的操作
与Thread.sleep()一样的功能都是暂停线程

  • TimeUnit.SECONDS.sleep()这个方法可以精确到任意时间,指定DAYS、HOURS、MINUTES,SECONDS、MILLISECONDS和NANOSECONDS
  • Thread.sleep()参数可以如下:(可查看下面源码解释)

1. 源码

1.1 TimeUnit.SECONDS.sleep()

枚举变量主要有(参数选择主要有)
很有可读性

变量 意思
NANOSECONDS 毫微秒
MICROSECONDS 微秒
MILLISECONDS 毫秒
SECONDS
MINUTES 分钟
HOURS 小时
DAYS

查看其源码
在暂停时间方面都有很高的精确性
转换时间以及验证

public void sleep(long timeout) throws InterruptedException {if (timeout > 0) {long ms = toMillis(timeout);int ns = excessNanos(timeout, ms);Thread.sleep(ms, ns);}}

而且可以指定一些枚举变量
每一部分枚举变量都有其方法
参数多选择多
比如下方的分钟

public long toSeconds(long duration) {long s, m;if ((s = scale) <= SECOND_SCALE)return (s == SECOND_SCALE) ? duration : duration / secRatio;else if (duration > (m = maxSecs))return Long.MAX_VALUE;else if (duration < -m)return Long.MIN_VALUE;elsereturn duration * secRatio;}

1.2 Thread.sleep()

对应的sleep()函数,查看其源码函数,主要有如下两个功能:

// 其设计的两个源码如下:/*
Millis -以毫秒为单位的睡眠时间长度
IllegalArgumentException  millis的值是负数
InterruptedException  如果任何线程中断了当前线程。抛出此异常时,当前线程的中断状态将被清除。
*/
public static native void sleep(long millis) throws InterruptedException;/*
使当前正在执行的线程休眠(临时停止执行),休眠时间为指定的毫秒数加上指定的纳秒数,具体取决于系统计时器和调度器的精度和准确性。线程不会失去任何监视器的所有权
*//*
Millis 以毫秒纳为单位的睡眠时间长度
nanos 表示为0到999999 纳秒额外的睡眠时间
对应的异常表示为:如果millis的值为负值,或者nano的值不在0-999999的范围内
*/
public static void sleep(long millis, int nanos)//InterruptedException异常表示 如果任何线程中断了当前线程。抛出此异常时,当前线程的中断状态将被清除throws InterruptedException {if (millis < 0) {throw new IllegalArgumentException("timeout value is negative");}if (nanos < 0 || nanos > 999999) {throw new IllegalArgumentException("nanosecond timeout value out of range");}if (nanos >= 500000 || (nanos != 0 && millis == 0)) {millis++;}sleep(millis);}

2. 代码实战

通过结合线程进程的操作
暂停该线程,将其挂起,可以运用该代码
指定暂停一秒,将其挂起

TimeUnit.MINUTES.sleep(1);

3. 代码对比

Thread.sleep()一样的功能都是暂停线程
但是TimeUnit.SECONDS.sleep()更具有可读性

Thread.sleep()可读性低,但调用都是同样功能
TimeUnit.SECONDS.sleep()参数选择多,枚举变量的参数具体可查看上方

Thread.sleep()代码实列比如
Thread.sleep(5*60*1000);这样比较有可读性,但乘起来可读性较低

java之TimeUnit.SECONDS.sleep()详细分析(全)相关推荐

  1. gsm模块 java 录音_Android GSM驱动模块详细分析

    Android的RIL驱动模块, 在hardware/ril目录下,一共分rild,libril.so以及librefrence_ril.so三个部分,另有一 radiooptions可供自动或手动调 ...

  2. java中Integer.parseInt用法详细分析(全)

    目录 前言 函数讲解 前言 将数字字符串转化成原生整型数据 属于java.lang.Integer 是原生类型整型的包裹类 函数讲解 1.parseInt(String s) 将字符串s转换为十进制的 ...

  3. java之Iterator迭代器用法详细分析(全)

    前言 迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构.迭代器通常被称为"轻量级"对象,因为创建它的代价小 单向移动 迭代: ...

  4. java程序的运行机制详细分析

    转自:http://hi.baidu.com/suny_duan/blog/item/074f9afb09f08c9b58ee901b.html JVM(Java虚拟机)一种用于计算设备的规范,可用不 ...

  5. java之next()和nextLine()详细分析

    目录 前言 实战代码 前言 两者都是获取其输入的字符串 但两者又有区别 next()只读取字符,直到遇到空格/Tab键/回车停止: nextLine()只读取字符以及前后的的空格/Tab键,直到遇到回 ...

  6. Java中的左移右移详细分析

    << public static void main(String[] args) {int i = -11;// 11 * 8System.out.println(Integer.toB ...

  7. java程序员二级_Java程序员认证模拟题及详细分析(2)

    Java程序员认证模拟题及详细分析(2) 分类:计算机等级 | 更新时间:2016-07-08| 来源:转载 Java程序员认证模拟题及详细分析(1) 26. Give following class ...

  8. java消费者模式_基于Java 生产者消费者模式(详细分析)

    生产者消费者模式是多线程中最为常见的模式:生产者线程(一个或多个)生成面包放进篮子里(集合或数组),同时,消费者线程(一个或多个)从篮子里(集合或数组)取出面包消耗.虽然它们任务不同,但处理的资源是相 ...

  9. HTTP头部解释,HTTP头部详细分析,最全HTTP头部信息

    原文地址:HTTP头部解释,HTTP头部详细分析,最全HTTP头部信息 HTTP 头部解释 ====================================================== ...

最新文章

  1. 两款轻量级服务器 Http-server SimpleHTTPServer
  2. One Switch for Mac 一键切换系统各项功能
  3. 微信公众号开发之网页授权认证获取用户的详细信息,实现自动登陆
  4. Android Framework常用工具及LOG调试方法
  5. 20200930 《计算感知》第1节课 笔记
  6. Mysql 8 group replication组复制集群单主配置图解
  7. python中反斜杠b_Python bytes 反斜杠转义问题解决方法
  8. java定义变量的输入_Terraform中输入变量
  9. 【原创】vegas提示NTDLL.DLL出错的解决办法
  10. 『初识C语言』语法入门详解
  11. 数据结构(树链剖分):BZOJ 4034: [HAOI2015]T2
  12. [Deprecated( please use panBy and panTo APIs )]
  13. 【例题】给定一个浮点格式(IEEE 754),有k位指数和n位小数,对于下列数,写出阶码E、尾数M、小数f和值V的公式。另外,请描述其位表示。
  14. 怎么锁定电脑屏幕_锁定流行趋势,信霆为你盘点3C数码配件中的人气单品
  15. 《UML系统分析与设计》习题答案
  16. 素数快速求法 -- 筛法求素数
  17. 跟我唱简谱v5.3 中文免费版
  18. 修改UEditor编辑器上传图片大小限制
  19. VMware Workstation 与 Device/Credential Guard 不兼容.在禁用 Device/Credenti
  20. Elasticsearch(Transport Client)常用操作

热门文章

  1. fufu笔记之多线程
  2. 解密:IT运维艺术之负载均衡之术
  3. RK3399平台开发系列讲解(以太网)5.11、PHY工作的代码流程
  4. 赶紧收藏起来,宝妈做自媒体短视频赚了1w,全靠这8个素材网站
  5. 自动化测试不求人-每日1例 selenium自动化测试对元素截图实例
  6. 正睿OI DAY8 ks1
  7. Unicode, UTF8, UTF16, UTF32
  8. 在Pycharm中更新安装最新版本pip,安装tensorflow
  9. 申请阿里云免费版SSL证书并配置在宝塔Nginx上
  10. ASP.NET动态网站制作(15)-- SQL数据库(1)