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

作者:Al_assad 时间:2021-05-31 06:30:11 

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

}

总结

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

感谢大家对本站的支持。

来源:http://blog.csdn.net/al_assad/article/details/52992875

标签:java,倒计时,编程
0
投稿

猜你喜欢

  • Java操作MongoDB模糊查询和分页查询

    2023-03-12 20:31:22
  • Java上传文件错误java.lang.NoSuchMethodException的解决办法

    2023-11-10 13:15:43
  • Springboot整合MybatisPlus的实现过程解析

    2021-06-14 02:47:06
  • C#中怎样从指定字符串中查找并替换字符串?

    2023-09-30 14:26:24
  • Spring Boot实现热部署的实例方法

    2023-10-24 08:12:50
  • 将本地jar包安装进入maven仓库(实现方法)

    2022-06-18 00:35:54
  • 腾讯开源消息中间件TubeMQ总体介绍分析

    2022-06-21 05:10:03
  • C# 用什么方法将BitConverter.ToString产生字符串再转换回去

    2021-10-07 17:49:40
  • c#如何使用 XML 文档功能

    2023-12-25 03:44:33
  • SpringDataJPA在Entity中常用的注解介绍

    2023-11-27 09:40:36
  • 一次Jvm old过高的排查过程实战记录

    2023-05-07 23:33:49
  • Java 常见的限流算法详细分析并实现

    2022-01-05 22:11:09
  • Java 逻辑控制详解分析

    2023-08-13 20:08:11
  • 详解tryAcquire()、addWaiter()、acquireQueued()

    2022-07-30 10:24:05
  • 解决Java中properties文件编码问题

    2022-07-21 14:09:06
  • C# 9.0新特性——扩展方法GetEnumerator支持foreach循环

    2021-08-27 22:38:09
  • Java实现储存对象并按对象某属性排序的几种方法示例

    2022-05-04 18:05:57
  • Java版画板的实现方法

    2023-01-06 22:31:44
  • 详解C#如何实现读写ini文件

    2022-02-04 23:15:27
  • Spring利用@Validated注解实现参数校验详解

    2023-08-26 12:06:26
  • asp之家 软件编程 m.aspxhome.com