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);
}*/
}
总结
以上是本文的全部内容,希望对大家能有所帮助。
感谢大家对本站的支持。