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

时间:2021-05-20

实现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 }

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 }

总结

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

感谢大家对本站的支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章