实现Java编程中倒计时的方法有许多,下面我们通过三个示例来简单了解下它的实现过程。
1.简易方式实现
java" id="highlighter_150924">
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
/**
* @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实现
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
/**
* @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实现
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
/**
* @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);
}*/
}
|
总结
以上是本文的全部内容,希望对大家能有所帮助。
感谢大家对本站的支持。
原文链接:http://blog.csdn.net/al_assad/article/details/52992875