定时器的编写

 1 package cn.sp.thread;
 2 
 3 
 4 import java.util.Date;
 5 import java.util.Timer;
 6 import java.util.TimerTask;
 7 
 8 /**
 9  * Created by 2YSP on 2017/10/14.
10  * 定时器
11  */
12 public class TraditionalTimer {
13 
14     private static int count = 0;
15 
16     public static void main(String[] args) {
17 //        new Timer().schedule(new TimerTask() {
18 //            @Override
19 //            public void run() {
20 //                System.out.println("boom!");
21 //            }
22 //        },10000);//10秒后触发
23 
24         /********间隔时间为2秒和4秒轮流执行************/
25         class MyTimerTask extends TimerTask{
26             @Override
27             public void run() {
28                 count = (count+1)%2;//1 0 1 0
29                 System.out.println(new Date().getSeconds());
30                 System.out.println("boom!");
31                 new Timer().schedule(new MyTimerTask(),2000+2000*count);
32             }
33         }
34 
35         new Timer().schedule(new MyTimerTask(),2000);
36 
37 //        while (true){
38 //            System.out.println(new Date().getSeconds());
39 //            try {
40 //                Thread.sleep(1000);
41 //            } catch (InterruptedException e) {
42 //                e.printStackTrace();
43 //            }
44 //        }
45     }
46 }

执行结果:

之间学习并发编程并没有注意到Timer这个类,可能是被摒弃了吧。毕竟现在项目中的定时任务,可以使用组件quartz或者spring框架自带的Task。

我怀疑后面两种也是基于该类实现吧。

转载于:https://www.cnblogs.com/2YSP/p/7695937.html

下面是一个基于 JavaScript 实现的秒杀定时器的示例代码: ```javascript // 秒杀开始时间(时间戳) var startTime = new Date('2022/01/01 00:00:00').getTime(); // 秒杀结束时间(时间戳) var endTime = new Date('2022/01/01 23:59:59').getTime(); // 获取当前时间(时间戳) var currentTime = new Date().getTime(); // 计算距离秒杀开始还有多少秒 var countDownSeconds = (startTime - currentTime) / 1000; // 定时器函数,每秒更新倒计时时间 var timer = setInterval(function() { // 计算距离秒杀开始还有多少秒 countDownSeconds = (startTime - new Date().getTime()) / 1000; // 判断秒杀是否已经开始 if (countDownSeconds <= 0) { // 秒杀已经开始,清除定时器 clearInterval(timer); // TODO: 开启秒杀按钮等操作 return; } // 将倒计时时间显示在页面上 var minutes = Math.floor(countDownSeconds / 60); var seconds = Math.floor(countDownSeconds % 60); document.getElementById('countdown').innerHTML = '距离秒杀开始还有:' + minutes + '分' + seconds + '秒'; }, 1000); ``` 在这个示例中,我们首先定义了秒杀开始和结束时间的时间戳,然后计算出距离秒杀开始还有多少秒,并启动一个定时器函数,每秒更新倒计时时间。 在定时器函数中,我们首先重新计算距离秒杀开始还有多少秒,然后判断是否已经开始。如果秒杀已经开始,我们清除定时器并执行相应的操作;否则,我们将倒计时时间显示在页面上。 请注意,这只是一个简单的示例代码,实际上还需要考虑各种情况,如网络延迟、秒杀数量限制等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值