java 定时器 倒计时_Java:多种方式实现倒计时定时器
多種方式實現倒計時定時器
github鏈接:https://github.com/Al-assad/Java-Gadgets/tree/master/count_down
1、簡易方式實現
/**
* @see
* @author Al_assad yulinying_1994@outlook.com
* @date 2016年10月18日 上午3:10:13
* @version V1.0
* Description: 倒計時簡易實現,只用單線程
*/
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);
}
System.out.println("Time is out");
}
//Test
/*public static void main(String[] args) throws InterruptedException {
new CountDown(10);
}*/
}
2、使用ScheduleExecutor實現
/**
* @see
* @author Al_assad yulinying_1994@outlook.com
* @date 2016年10月18日 上午2:14:43
* @version V1.0
* Description: 倒計時實現方式1:使用ScheduledExecutor實現
* 使用兩個線程;
*/
import java.util.concurrent.*;
public class CountDown1 {
private volatile int limitSec ; //記錄倒計時時間
private int curSec; //記錄倒計時當下時間
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實現
/**
* @see
* @author Al_assad yulinying_1994@outlook.com
* @date 2016年10月18日 上午2:47:44
* @version V1.0
* Description: 倒計時實現方式2:使用java.uitl.Timer實現
* 使用兩個線程
*/
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);
}*/
}
總結
以上是生活随笔為你收集整理的java 定时器 倒计时_Java:多种方式实现倒计时定时器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 机器学习软件准备
- 下一篇: Direct3D(D3D)简介