首页 > 编程 > Java > 正文

Java编程倒计时实现方法示例

2019-11-26 11:27:03
字体:
来源:转载
供稿:网友

        实现Java编程中倒计时的方法有许多,下面我们通过三个示例来简单了解下它的实现过程。

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(100);   //倒计时起始时间,多少秒 }  } 

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);  }*/  } 

总结

以上是本文的全部内容,希望对大家能有所帮助。

感谢大家对本站的支持。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表