定时器连环炸弹:先2s炸一下,再4s炸一下,再2s炸一下,再4s炸一下如此循环下去。

定义两个炸弹:
public class SerialBomings {

    public static void main(String[] args) {

        new Timer().schedule(new MyTimerTask(), 2000);
        new Timer().schedule(new MyTimerTask2(), 6000);
        while(true){
            System.out.println(new Date().getSeconds());
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

class MyTimerTask extends TimerTask{
    @Override
    public void run() {
        System.out.println("bombing2");
        new Timer().schedule(new MyTimerTask2(), 6000);
    }
}
class MyTimerTask2 extends TimerTask{
    @Override
    public void run() {
        System.out.println("bombing");
        new Timer().schedule(new MyTimerTask(), 6000);

    }
}
定义一个炸弹
public class SerialBomings {

    public static void main(String[] args) {

        new Timer().schedule(new MyTimerTask(), 2000);
        //new Timer().schedule(new MyTimerTask2(), 6000);
        while(true){
            System.out.println(new Date().getSeconds());
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}
class MyTimerTask extends TimerTask{
    //静态变量
       static int count = 0;
    @Override
    public void run() {
        count = (count+1)%2;
        System.out.println("bombing");
        new Timer().schedule(new MyTimerTask(), 2000 + count*2000);

    }

}    
时间: 2024-10-13 23:44:59

定时器连环炸弹:先2s炸一下,再4s炸一下,再2s炸一下,再4s炸一下如此循环下去。的相关文章

【java并发】传统线程技术中的定时器技术

传统线程技术中有个定时器,定时器的类是Timer,我们使用定时器的目的就是给它安排任务,让它在指定的时间完成任务.所以先来看一下Timer类中的方法(主要看常用的TimerTask()方法): 返回值 方法名 方法描述 void schedule(TimerTask task, long delay) 安排在指定延迟后执行指定的任务. void schedule(TimerTask task, long delay, long period) 安排指定的任务从指定的延迟后开始进行重复的固定延迟执

STM8S---TIM2产生PWM与TIM1定时器周期中断的时钟问题

1 问题 ??在下面的测试程序中,如果将Init_CLK()函数中的 CLK_CKDIVR |= 0x08;去掉'|',则TIM1的功能实现跟预设定相同(10ms中断一次),但是TIM2的PWM频率就变高了:如果加上,则TIM2的功能实现跟预设定相同(产生1Hz的PWM),但是TIM1的周期就变长了: ??尝试了很多测试,均无效(买的开发板和另一块gs自画板测试也都一样). 2 尝试 ??因为STM8S默认使用内部16M高速RC振荡器,且8分频,则系统启动主时钟为2M.即CLK_CKDIVR =

Linux时间子系统之六:高精度定时器(HRTIMER)的原理和实现

上一篇文章,我介绍了传统的低分辨率定时器的实现原理.而随着内核的不断演进,大牛们已经对这种低分辨率定时器的精度不再满足,而且,硬件也在不断地发展,系统中的定时器硬件的精度也越来越高,这也给高分辨率定时器的出现创造了条件.内核从2.6.16开始加入了高精度定时器架构.在实现方式上,内核的高分辨率定时器的实现代码几乎没有借用低分辨率定时器的数据结构和代码,内核文档给出的解释主要有以下几点: 低分辨率定时器的代码和jiffies的关系太过紧密,并且默认按32位进行设计,并且它的代码已经经过长时间的优化

定时器遇到的坑

1 // 商品倒计时用一个定时器来写 2 //type 是不同页面 3 var timecountdown = { 4 Secondms_jx: 60 * 1000, 5 minutems_jx: 1000, 6 h: 100, 7 timehms: false 8 }; 9 10 timecountdown.updateEndTime = function(type) { 11 var _that = this; 12 $(".item-djx").each(function(i,

人生路上要念的那些经——转载《寒门再难出贵子》

写在前面的话 这篇文章我很熟悉,第一次读是在去徐医的动荡公交车上,我一口气看完才下的车.不管真实与否.有没有添油加醋,它是那么的吸引人,他像一把刀,毫不客气地剥开这个社会,不管里边是鲜活的肌肉还是恶性肿瘤.前几天跟恩庭在宿舍聊天再次说起来,觉得很有必要跟大家分享一下,因为这个社会不是一杯单纯的鲜牛奶,更不是一碗暖心的鸡汤,而是一锅纷杂的八宝粥.转载仅供大家参考,不代表本人观点,大家仁者见仁智者见智. 寒门在难出贵子 --永乐大帝二世 现在越来越看清楚"性格决定命运",性格这东西是熔透于

11.按键驱动之定时器防抖(详解)

本节目标: 通过定时器来防止按键抖动,测试程序是使用上节的:阻塞操作的测试程序 1.如下图所示,在没有定时器防抖情况下,按键没有稳定之前会多次进入中断,使得输出多个相同信息出来 2.按键波形图,如下所示: 3.如何消去按键抖动 通过定时器延时10ms,然后每当按键进入中断时就更新定时器延时10ms,若延时10ms到了说明已经过了抖动范围,然后再打印按键电平信息 4.定时器结构体和函数介绍 我们先来看看两个全局变量: jiffies: 是系统时钟,全局变量,默认每隔10ms加1 HZ:是每S的频率

再按一次退出程序的实现

重写返回按键的方法:(个人认为这是最简单的) 用一个参数来纪录按下按键的返回时间,与上一次作比较. private long exitTime = 0; @Override public void onBackPressed() { if ((System.currentTimeMillis() - exitTime) > 2000) {//判断此次按键于上一次按键的时间差是否>2s Toast.makeText(MainActivity.this, "再按一次退出应用",

再探 butterfly.js - 抛砖引玉篇(notification.js)

再探 butterfly.js - 抛砖引玉篇(notification.js) 事情经过 今天又来研究butterfly.js的源码(打酱油),发现了一个notification.js.顾名思义notification就是公告栏嘛,那么这个notification.js到底有什么用途呢?题外话:还有十几天就过年- 我的新年愿望是:准时出粮! 正片 先贴效果图: 显然,这真的是一个显示状态的公告栏.万万没有想到butterfly.js会内置了这类插件.那个这个notification.js到底要

jmeter 定时器

jmeter提供了很多元件,帮助我们更好的完成各种场景的性能测试,其中,定时器(timer)是很重要的一个元件,最新的3.0版本jemter提供了9种定时器(之前6种),下面一一介绍: 一.定时器的作用域 1.定时器是在每个sampler(采样器)之前执行的,而不是之后(无论定时器位置在sampler之前还是下面): 2.当执行一个sampler之前时,所有当前作用域内的定时器都会被执行: 3.如果希望定时器仅应用于其中一个sampler,则把定时器作为子节点加入: 4.如果希望在sampler