java并发包中的TimeUnit的使用

2023-11-30 08:18
文章标签 java 使用 发包 timeunit

本文主要是介绍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的使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/436300

相关文章

SpringBoot利用树形结构优化查询速度

《SpringBoot利用树形结构优化查询速度》这篇文章主要为大家详细介绍了SpringBoot利用树形结构优化查询速度,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一个真实的性能灾难传统方案为什么这么慢N+1查询灾难性能测试数据对比核心解决方案:一次查询 + O(n)算法解决

Go语言使用sync.Mutex实现资源加锁

《Go语言使用sync.Mutex实现资源加锁》数据共享是一把双刃剑,Go语言为我们提供了sync.Mutex,一种最基础也是最常用的加锁方式,用于保证在任意时刻只有一个goroutine能访问共享... 目录一、什么是 Mutex二、为什么需要加锁三、实战案例:并发安全的计数器1. 未加锁示例(存在竞态)

SpringBoot实现虚拟线程的方案

《SpringBoot实现虚拟线程的方案》Java19引入虚拟线程,本文就来介绍一下SpringBoot实现虚拟线程的方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录什么是虚拟线程虚拟线程和普通线程的区别SpringBoot使用虚拟线程配置@Async性能对比H

javaSE类和对象进阶用法举例详解

《javaSE类和对象进阶用法举例详解》JavaSE的面向对象编程是软件开发中的基石,它通过类和对象的概念,实现了代码的模块化、可复用性和灵活性,:本文主要介绍javaSE类和对象进阶用法的相关资... 目录前言一、封装1.访问限定符2.包2.1包的概念2.2导入包2.3自定义包2.4常见的包二、stati

SpringBoot结合Knife4j进行API分组授权管理配置详解

《SpringBoot结合Knife4j进行API分组授权管理配置详解》在现代的微服务架构中,API文档和授权管理是不可或缺的一部分,本文将介绍如何在SpringBoot应用中集成Knife4j,并进... 目录环境准备配置 Swagger配置 Swagger OpenAPI自定义 Swagger UI 底

解决hive启动时java.net.ConnectException:拒绝连接的问题

《解决hive启动时java.net.ConnectException:拒绝连接的问题》Hadoop集群连接被拒,需检查集群是否启动、关闭防火墙/SELinux、确认安全模式退出,若问题仍存,查看日志... 目录错误发生原因解决方式1.关闭防火墙2.关闭selinux3.启动集群4.检查集群是否正常启动5.

SpringBoot集成EasyExcel实现百万级别的数据导入导出实践指南

《SpringBoot集成EasyExcel实现百万级别的数据导入导出实践指南》本文将基于开源项目springboot-easyexcel-batch进行解析与扩展,手把手教大家如何在SpringBo... 目录项目结构概览核心依赖百万级导出实战场景核心代码效果百万级导入实战场景监听器和Service(核心

idea Maven Springboot多模块项目打包时90%的问题及解决方案

《ideaMavenSpringboot多模块项目打包时90%的问题及解决方案》:本文主要介绍ideaMavenSpringboot多模块项目打包时90%的问题及解决方案,具有很好的参考价值,... 目录1. 前言2. 问题3. 解决办法4. jar 包冲突总结1. 前言之所以写这篇文章是因为在使用Mav

Spring Security6.3.x的使用指南与注意事项

《SpringSecurity6.3.x的使用指南与注意事项》SpringSecurity6.3.1基于现代化架构,提供简洁配置、增强默认安全性和OAuth2.1/OIDC支持,采用Lambda... 目录介绍基础配置 (Servlet 应用 - 使用 Lambda DSL)关键配置详解(Lambda DS

Java Stream 的 Collectors.toMap高级应用与最佳实践

《JavaStream的Collectors.toMap高级应用与最佳实践》文章讲解JavaStreamAPI中Collectors.toMap的使用,涵盖基础语法、键冲突处理、自定义Map... 目录一、基础用法回顾二、处理键冲突三、自定义 Map 实现类型四、处理 null 值五、复杂值类型转换六、处理