Java編程倒計(jì)時(shí)實(shí)現(xiàn)方法示例
實(shí)現(xiàn)Java編程中倒計(jì)時(shí)的方法有許多,下面我們通過三個(gè)示例來簡單了解下它的實(shí)現(xiàn)過程。
1.簡易方式實(shí)現(xiàn)
/**
* @see
* @author Al_assad yulinying_1994@outlook.com
* @date 2016年10月18日 上午3:10:13
* @version V1.0
* Description: 倒計(jì)時(shí)簡易實(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é)
以上是本文的全部內(nèi)容,希望對大家能有所幫助。
感謝大家對本站的支持。
- 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í)三種簡單實(shí)現(xiàn)方式
- Java倒計(jì)時(shí)三種實(shí)現(xiàn)方式代碼實(shí)例
相關(guān)文章
spring和quartz整合,并簡單調(diào)用(實(shí)例講解)
下面小編就為大家?guī)硪黄猻pring和quartz整合,并簡單調(diào)用(實(shí)例講解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-07-07
springboot啟動報(bào)錯(cuò):application?startup?failed問題
這篇文章主要介紹了springboot啟動報(bào)錯(cuò):application?startup?failed問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07
Java運(yùn)行時(shí)多態(tài)性的實(shí)現(xiàn)
Java運(yùn)行時(shí)多態(tài)性的實(shí)現(xiàn)...2006-12-12
詳解Maven 搭建spring boot多模塊項(xiàng)目(附源碼)
這篇文章主要介紹了詳解Maven 搭建spring boot多模塊項(xiàng)目(附源碼),具有一定的參考價(jià)值,有興趣的可以了解一下2017-09-09

