Java 兩種延時(shí)thread和timer詳解及實(shí)例代碼
Java 兩種延時(shí)thread和timer詳解及實(shí)例代碼
在Java中有時(shí)候需要使程序暫停一點(diǎn)時(shí)間,稱(chēng)為延時(shí)。普通延時(shí)用Thread.sleep(int)方法,這很簡(jiǎn)單。它將當(dāng)前線程掛起指定的毫秒數(shù)。如
try { Thread.currentThread().sleep(1000);//毫秒 } catch(Exception e){}
在這里需要解釋一下線程沉睡的時(shí)間。sleep()方法并不能夠讓程序"嚴(yán)格"的沉睡指定的時(shí)間。例如當(dāng)使用5000作為sleep()方法的參數(shù)時(shí),線 程可能在實(shí)際被掛起5000.001毫秒后才會(huì)繼續(xù)運(yùn)行。當(dāng)然,對(duì)于一般的應(yīng)用程序來(lái)說(shuō),sleep()方法對(duì)時(shí)間控制的精度足夠了。
但是如果要使用精確延時(shí),最好使用Timer類(lèi):
Timer timer=new Timer();//實(shí)例化Timer類(lèi) timer.schedule(new TimerTask(){ public void run(){ System.out.println("退出"); this.cancel();}},500);//五百毫秒
這種延時(shí)比sleep精確。上述延時(shí)方法只運(yùn)行一次,如果需要運(yùn)行多次, 使用timer.schedule(new MyTask(), 1000, 2000); 則每間隔2秒執(zhí)行MyTask()
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
- JAVA開(kāi)發(fā)常用類(lèi)庫(kù)UUID、Optional、ThreadLocal、TimerTask、Base64使用方法與實(shí)例詳解
- Java線程Timer定時(shí)器用法詳細(xì)總結(jié)
- java Timer 定時(shí)每天凌晨1點(diǎn)執(zhí)行任務(wù)
- Java中Timer的schedule()方法參數(shù)詳解
- 深入理解Java定時(shí)調(diào)度(Timer)機(jī)制
- 使用java.util.Timer實(shí)現(xiàn)任務(wù)調(diào)度
- java Timer測(cè)試定時(shí)調(diào)用及固定時(shí)間執(zhí)行代碼示例
- Android RxJava創(chuàng)建操作符Timer的方法
- Java定時(shí)器Timer使用方法詳解
- java中timer的schedule和scheduleAtFixedRate方法區(qū)別詳解
- Java多線程定時(shí)器Timer原理及實(shí)現(xiàn)
- java定時(shí)器timer的使用方法代碼示例
- Java 中Timer和TimerTask 定時(shí)器和定時(shí)任務(wù)使用的例子
- java多線程之定時(shí)器Timer的使用詳解
- java定時(shí)任務(wù)Timer和TimerTask使用詳解
- Java時(shí)間類(lèi)庫(kù)Timer的使用方法與實(shí)例詳解
相關(guān)文章
Spring與MyBatis集成?AOP整合PageHelper插件的操作過(guò)程
Spring與MyBatis集成的主要目的是為了提供更強(qiáng)大的數(shù)據(jù)訪問(wèn)和事務(wù)管理能力,以及簡(jiǎn)化配置和提高開(kāi)發(fā)效率,這篇文章主要介紹了Spring與MyBatis集成AOP整合PageHelper插件,需要的朋友可以參考下2023-08-08Spring依賴(lài)注入與第三方Bean管理基礎(chǔ)詳解
依賴(lài)注入(Dependency Injection)和控制反轉(zhuǎn)(Inversion of Control)是同一個(gè)概念。具體含義是:當(dāng)某個(gè)角色(可能是一個(gè)Java實(shí)例,調(diào)用者)需要另一個(gè)角色(另一個(gè)Java實(shí)例,被調(diào)用者)的協(xié)助時(shí),在 傳統(tǒng)的程序設(shè)計(jì)過(guò)程中,通常由調(diào)用者來(lái)創(chuàng)建被調(diào)用者的實(shí)例2022-12-12Java 時(shí)間轉(zhuǎn)換的實(shí)例代碼
下面小編就為大家?guī)?lái)一篇Java 時(shí)間轉(zhuǎn)換的實(shí)例代碼。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-07-07Java中SpringBoot的@Transactional原理
這篇文章主要介紹了Java中SpringBoot的@Transactional原理,面向元數(shù)據(jù)遍歷已經(jīng)成為越來(lái)越多開(kāi)發(fā)者的偏好,因此原理從Springboot的EnableTransactionManagement注解說(shuō)起,需要的朋友可以參考下2023-07-07Java中的HttpServletRequest接口詳細(xì)解讀
這篇文章主要介紹了Java中的HttpServletRequest接口詳細(xì)解讀,是一個(gè)接口,全限定名稱(chēng)為Jakarta.Serclet.http.HttpServletRequest2023-11-11
HttpServletRequest接口是Servlet規(guī)范的一員,需要的朋友可以參考下Java高級(jí)特性之反射機(jī)制實(shí)例詳解
這篇文章主要介紹了Java高級(jí)特性之反射機(jī)制,結(jié)合實(shí)例形式詳細(xì)分析了Java反射機(jī)制原理、功能、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2018-08-08Java計(jì)時(shí)新姿勢(shì)StopWatch的使用方法詳解
這篇文章主要給大家介紹了關(guān)于Java計(jì)時(shí)新姿勢(shì)StopWatch的相關(guān)資料,以及java 中使用StopWatch來(lái)計(jì)算時(shí)間差的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-01-01關(guān)于Java整合RocketMQ實(shí)現(xiàn)生產(chǎn)消費(fèi)詳解
這篇文章主要介紹了關(guān)于Java整合RocketMQ實(shí)現(xiàn)生產(chǎn)消費(fèi)詳解,RocketMQ作為一款純java、分布式、隊(duì)列模型的開(kāi)源消息中間件,支持事務(wù)消息、順序消息、批量消息、定時(shí)消息、消息回溯等,需要的朋友可以參考下2023-05-05spring boot2結(jié)合mybatis增刪改查的實(shí)現(xiàn)
這篇文章主要給大家介紹了關(guān)于spring boot2結(jié)合mybatis增刪改查的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用spring boot2具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09基于Spring boot @Value 注解注入屬性值的操作方法
這篇文章主要介紹了結(jié)合SpEL使用@Value-基于配置文件或非配置的文件的值注入-Spring Boot的相關(guān)知識(shí),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07