Java编程倒计时实现方法示例
实现Java编程中倒计时的方法有许多,下面我们通过三个示例来简单了解下它的实现过程。
1.简易方式实现
/** *@see *@authorAl_assadyulinying_1994@outlook.com *@date2016年10月18日上午3:10:13 *@versionV1.0 *Description:倒计时简易实现,只用单线程 */ importjava.util.*; importjava.util.concurrent.*; publicclassCountDown{ privateintlimitSec; publicCountDown(intlimitSec)throwsInterruptedException{ this.limitSec=limitSec; System.out.println("Countfrom"+limitSec); while(limitSec>0){ System.out.println("remians"+--limitSec+"s"); TimeUnit.SECONDS.sleep(1);//设置倒计时间隔 } System.out.println("Timeisout"); } //Test publicstaticvoidmain(String[]args)throwsInterruptedException{ newCountDown(100);//倒计时起始时间,多少秒 } }
2.使用ScheduleExecutor实现
/** *@see *@authorAl_assadyulinying_1994@outlook.com *@date2016年10月18日上午2:14:43 *@versionV1.0 *Description:倒计时实现方式1:使用ScheduledExecutor实现 *使用两个线程; */ importjava.util.concurrent.*; publicclassCountDown1{ privatevolatileintlimitSec;//记录倒计时时间 privateintcurSec;//记录倒计时当下时间 publicCountDown1(intlimitSec)throwsInterruptedException{ this.limitSec=limitSec; this.curSec=limitSec; System.out.println("countdownform"+limitSec); ScheduledExecutorServiceexec=Executors.newScheduledThreadPool(1); exec.scheduleAtFixedRate(newTask(),0,1,TimeUnit.SECONDS); TimeUnit.SECONDS.sleep(limitSec);//暂停本线程 exec.shutdownNow(); System.out.println("Timeout!"); } privateclassTaskimplementsRunnable{ publicvoidrun(){ System.out.println("Timeremains"+--curSec+"s"); } } //Test /*publicstaticvoidmain(String[]args)throwsInterruptedException{ newCountDown1(10); }*/ }
3.使用java.util.Timer实现
/** *@see *@authorAl_assadyulinying_1994@outlook.com *@date2016年10月18日上午2:47:44 *@versionV1.0 *Description:倒计时实现方式2:使用java.uitl.Timer实现 *使用两个线程 */ importjava.util.*; importjava.util.concurrent.TimeUnit; publicclassCountDown2{ privateintlimitSec; privateintcurSec; publicCountDown2(intlimitSec)throwsInterruptedException{ this.limitSec=limitSec; this.curSec=limitSec; System.out.println("countdownfrom"+limitSec+"s"); Timertimer=newTimer(); timer.schedule(newTimerTask(){ publicvoidrun(){ System.out.println("Timeremians"+--curSec+"s"); } },0,1000); TimeUnit.SECONDS.sleep(limitSec); timer.cancel(); System.out.println("Timeisout!"); } //Test /*publicstaticvoidmain(String[]args)throwsInterruptedException{ newCountDown2(10); }*/ }
总结
以上是本文的全部内容,希望对大家能有所帮助。
感谢大家对本站的支持。