首页 >Java >java教程 >Java实现倒计时的方法详解

Java实现倒计时的方法详解

黄舟
黄舟原创
2017-09-09 13:39:014270浏览

这篇文章主要介绍了Java编程倒计时实现的三个示例,三种实现方法,具有一定参考价值,需要的朋友可以了解下。

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

总结

以上是Java实现倒计时的方法详解的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn