Java編程倒計(jì)時(shí)實(shí)現(xiàn)方法示例
實(shí)現(xiàn)Java編程中倒計(jì)時(shí)的方法有許多,下面我們通過(guò)三個(gè)示例來(lái)簡(jiǎn)單了解下它的實(shí)現(xiàn)過(guò)程。
1.簡(jiǎn)易方式實(shí)現(xiàn)
/**
* @see
* @author Al_assad yulinying_1994@outlook.com
* @date 2016年10月18日 上午3:10:13
* @version V1.0
* Description: 倒計(jì)時(shí)簡(jiǎn)易實(shí)現(xiàn),只用單線程
*/
import java.util.*;
import java.util.concurrent.*;
public class CountDown {
private int limitSec;
public CountDown(int limitSec) throws InterruptedException{
this.limitSec = limitSec;
System.out.println("Count from "+limitSec);
while(limitSec > 0){
System.out.println("remians "+ --limitSec +" s");
TimeUnit.SECONDS.sleep(1); //設(shè)置倒計(jì)時(shí)間隔
}
System.out.println("Time is out");
}
//Test
public static void main(String[] args) throws InterruptedException {
new CountDown(100); //倒計(jì)時(shí)起始時(shí)間,多少秒
}
}
2.使用ScheduleExecutor實(shí)現(xiàn)
/**
* @see
* @author Al_assad yulinying_1994@outlook.com
* @date 2016年10月18日 上午2:14:43
* @version V1.0
* Description: 倒計(jì)時(shí)實(shí)現(xiàn)方式1:使用ScheduledExecutor實(shí)現(xiàn)
* 使用兩個(gè)線程;
*/
import java.util.concurrent.*;
public class CountDown1 {
private volatile int limitSec ; //記錄倒計(jì)時(shí)時(shí)間
private int curSec; //記錄倒計(jì)時(shí)當(dāng)下時(shí)間
public CountDown1(int limitSec) throws InterruptedException{
this.limitSec = limitSec;
this.curSec = limitSec;
System.out.println("count down form "+limitSec);
ScheduledExecutorService exec = Executors.newScheduledThreadPool(1);
exec.scheduleAtFixedRate(new Task(),0,1,TimeUnit.SECONDS);
TimeUnit.SECONDS.sleep(limitSec); //暫停本線程
exec.shutdownNow();
System.out.println("Time out!");
}
private class Task implements Runnable{
public void run(){
System.out.println("Time remains "+ --curSec +" s");
}
}
//Test
/* public static void main(String[] args) throws InterruptedException{
new CountDown1(10);
}*/
}
3.使用java.util.Timer實(shí)現(xiàn)
/**
* @see
* @author Al_assad yulinying_1994@outlook.com
* @date 2016年10月18日 上午2:47:44
* @version V1.0
* Description: 倒計(jì)時(shí)實(shí)現(xiàn)方式2:使用java.uitl.Timer實(shí)現(xiàn)
* 使用兩個(gè)線程
*/
import java.util.*;
import java.util.concurrent.TimeUnit;
public class CountDown2 {
private int limitSec;
private int curSec;
public CountDown2(int limitSec) throws InterruptedException{
this.limitSec = limitSec;
this.curSec = limitSec;
System.out.println("count down from "+limitSec+" s ");
Timer timer = new Timer();
timer.schedule(new TimerTask(){
public void run(){
System.out.println("Time remians "+ --curSec +" s");
}
},0,1000);
TimeUnit.SECONDS.sleep(limitSec);
timer.cancel();
System.out.println("Time is out!");
}
//Test
/* public static void main(String[] args) throws InterruptedException{
new CountDown2(10);
}*/
}
總結(jié)
以上是本文的全部?jī)?nèi)容,希望對(duì)大家能有所幫助。
感謝大家對(duì)本站的支持。
- Java 獲取當(dāng)前時(shí)間及實(shí)現(xiàn)時(shí)間倒計(jì)時(shí)功能【推薦】
- android使用Rxjava實(shí)現(xiàn)倒計(jì)時(shí)功能
- Rxjava實(shí)現(xiàn)發(fā)送驗(yàn)證碼倒計(jì)時(shí)功能
- Android 使用 RxJava2 實(shí)現(xiàn)倒計(jì)時(shí)功能的示例代碼
- Java 實(shí)現(xiàn)倒計(jì)時(shí)功能(由秒計(jì)算天、小時(shí)、分鐘、秒)
- Android使用Kotlin和RxJava 2.×實(shí)現(xiàn)短信驗(yàn)證碼倒計(jì)時(shí)效果
- Android 用RxBinding與RxJava2實(shí)現(xiàn)短信驗(yàn)證碼倒計(jì)時(shí)功能
- 詳解java倒計(jì)時(shí)三種簡(jiǎn)單實(shí)現(xiàn)方式
- Java倒計(jì)時(shí)三種實(shí)現(xiàn)方式代碼實(shí)例
相關(guān)文章
簡(jiǎn)單理解Java的垃圾回收機(jī)制與finalize方法的作用
這篇文章主要介紹了簡(jiǎn)單理解Java的垃圾回收機(jī)制與finalize方法的作用,著重講解了Java的GC銷毀對(duì)象的過(guò)程,需要的朋友可以參考下2015-11-11
Intellij IDEA 配置Subversion插件實(shí)現(xiàn)步驟詳解
這篇文章主要介紹了Intellij IDEA 配置Subversion插件實(shí)現(xiàn)步驟詳解的相關(guān)資料,需要的朋友可以參考下2017-05-05
一個(gè)簡(jiǎn)陋的java圖書(shū)管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了一個(gè)簡(jiǎn)陋的java圖書(shū)管理系統(tǒng),簡(jiǎn)單的實(shí)現(xiàn)功能測(cè)試,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-07-07
java實(shí)現(xiàn)一個(gè)接口調(diào)取另一個(gè)接口(接口一調(diào)取接口二)
這篇文章主要介紹了java實(shí)現(xiàn)一個(gè)接口調(diào)取另一個(gè)接口(接口一調(diào)取接口二),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09
JAVA數(shù)據(jù)結(jié)構(gòu)之漢諾塔代碼實(shí)例
這篇文章主要介紹了JAVA數(shù)據(jù)結(jié)構(gòu)之漢諾塔,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
Java?3年面試經(jīng)驗(yàn)告訴你Mybatis是如何進(jìn)行分頁(yè)的
這篇文章主要介紹了Java?3年面試經(jīng)驗(yàn)告訴你Mybatis是如何進(jìn)行分頁(yè)的,對(duì)于任何ORM框架,分頁(yè)的實(shí)現(xiàn)邏輯無(wú)外乎兩種,不管怎么包裝,最終給到開(kāi)發(fā)者的,只是使用上的差異而已,本文給大家講解的很明白,感興趣的朋友一起看看吧2022-09-09
一篇文章帶你入門(mén)Springboot沙箱環(huán)境支付寶支付(附源碼)
螞蟻沙箱環(huán)境 (Beta) 是協(xié)助開(kāi)發(fā)者進(jìn)行接口功能開(kāi)發(fā)及主要功能聯(lián)調(diào)的輔助環(huán)境。沙箱環(huán)境模擬了開(kāi)放平臺(tái)部分產(chǎn)品的主要功能和主要邏輯2021-06-06

