`
OracleX
  • 浏览: 123806 次
  • 性别: Icon_minigender_1
  • 来自: 地球
社区版块
存档分类
最新评论

线程学习笔记【2】---Timer(定时器)

阅读更多

入门

public class Time01 {

public static void main(String[] args) {

// Timer timer01=new Timer();
// timer01.schedule(new TimerTask(){
//
// @Override
// public void run() {
//
// System.out.println("bombing");
// }}, 1000);

new Timer().schedule(new TimerTask() {

            @Override
public void run() {
                System.out.println("bombing");

            }
        }, 10000);
while (true) {
            System.out.println(new Date().getSeconds());
try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }

}

运行结果

21
22
23
24
25
26
27
28
29
30
bombing
31
32
33
连续执行

public class Time02 {

public static void main(String[] args) {

new Timer().schedule(new TimerTask() {

            @Override
public void run() {
                System.out.println("bombing");

            }
        }, 10000,3000);  //每隔3秒执行
        while (true) {
            System.out.println(new Date().getSeconds());
try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }

}

运行结果:

50
51
52
53
54
55
56
57
58
59
bombing
0
1
2
bombing
3
4
5
bombing
6
7
提高

 匿名内部类是临时的

 整数分为奇数和偶数,所以可以按照奇偶操作完成

/**
 *一个2秒执行,另一个4秒执行,交替循环往复 
 *
*/
public class Time03 {

static int i = 0; // 静态变量可以记录类创建的对象数量

public static void main(String[] args) {
class MyTimerTask extends TimerTask {
//内部类内部不能生成静态变量
            public void run() {
                i=(i+1)%2;
                System.out.println("bombing");
new Timer().schedule(new MyTimerTask(), 2000+2000*i);
            }
        }
new Timer().schedule(new MyTimerTask(), 2000);
while (true) {
try {
                System.out.println(new Date().getSeconds());
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }

    }

}

 运行结果:

13
14
bombing
15
16
17
18
bombing
19
20
bombing
21
22
23
24
bombing
25

/**
 * 每天在指定的时间执行操作 
 * 提供调度需求的开源框架Quartz在这方面处理能力很强
*/
public class Timer04 {

public static void main(String[] args) {
        String str = "2011-08-28 08:39:00";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

        Timer timer = new Timer();
try {
            timer.schedule(new TimerTask() {

                @Override
public void run() {

                    System.out.println("timer");
                }
            }, sdf.parse(str), 24 * 60 * 1000);
        } catch (ParseException e) {
            e.printStackTrace();
        }

while (true) {
            System.out.println(new Date().getSeconds());
try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
/**
     * 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
     * 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 timer 0 1 2 3 4 5
*/

}

 

 

分享到:
评论

相关推荐

    游戏编程学习笔记01 -- 定时器操作 代码附件

    在这个“游戏编程学习笔记01”中,我们将深入探讨如何在C++环境中实现定时器操作。 C++语言本身并不直接提供内置的定时器功能,但可以通过一些库或系统API来实现。在这个案例中,我们看到三个源文件:`myTimer.cpp`...

    ThreadX学习笔记.pdf

    ### ThreadX学习笔记知识点概述 #### 一、ThreadX启动过程详解 ThreadX是一个轻量级的实时操作系统(RTOS),广泛应用于嵌入式系统中。本节内容将深入解析ThreadX从启动到正常运行的全过程。 ##### 1. 注册中断向...

    ServletContextListener,Timer,TimerTask学习笔记

    然后,`Timer`和`TimerTask`是Java的定时器和定时任务类,它们用于在后台线程中定期执行任务。`Timer`对象负责调度任务,而`TimerTask`则表示具体的任务。创建一个`Timer`实例后,可以通过调用`schedule`或`...

    jmeter学习笔记

    ### jmeter学习笔记 #### 一、jmeter简介 **jmeter是什么?** Apache JMeter 是 Apache 组织开发的一款开源的压力测试与性能测量工具,主要用于进行 Web 应用的性能测试,不过随着时间的发展,其功能已经扩展到了...

    MFC学习笔记\MFC学习笔记整理:002_腾讯游戏连连看外挂制作(一)

    《MFC学习笔记:腾讯游戏连连看外挂制作(一)》 在本文中,我们将深入探讨如何使用Microsoft Foundation Classes (MFC) 来开发腾讯游戏连连看的外挂程序。MFC是微软提供的一套C++库,用于简化Windows应用程序的开发...

    C#开发笔记.docx

    通过本案例的学习,我们可以了解到在处理涉及多步骤操作的软件开发时,合理利用.NET框架提供的组件如`System.Timers.Timer`对于精确控制程序流程至关重要。正确地分离提示信息显示逻辑与实际操作逻辑,并利用合适的...

    GD32学习笔记第三章:PWM控制LED

    在本GD32学习笔记第三章中,我们将深入探讨如何使用PWM(脉宽调制)技术来控制LED的亮度。PWM是一种广泛应用于嵌入式系统中的数字模拟转换方法,通过改变脉冲宽度来调节输出信号的平均功率,进而实现对LED亮度的控制...

    Win32程序设计学习笔记

    本文将围绕“Win32程序设计学习笔记”中的关键知识点进行深入探讨。 1. **勿在浮砂筑高台**:这个章节可能在提醒程序员不要在不稳固的基础上构建复杂的系统。在Win32程序设计中,这意味着要确保程序的基础结构坚实...

    iOS学习笔记

    在iOS开发过程中,掌握一些基础和实用的技巧是至关重要的。...当然,iOS开发涉及的远不止这些,还包括网络请求、数据库操作、多线程、布局管理等等,继续深入学习将有助于你成为一名优秀的iOS开发者。

    C#开发笔记

    2. **定时器(timer的用法)**:C#提供了两种主要的定时器类型:`System.Timers.Timer` 和 `System.Threading.Timer`。两者都可用于周期性执行任务,但工作方式有所不同。`System.Timers.Timer` 在单独的线程上运行...

    Windows API开发详解:函数、接口、编程实例

    - 系统定时器,可以使用SetTimer和KillTimer来设置和取消定时器,当到达设定时间时,系统会发送WM_TIMER消息。 5. 学习资源: 《Windows API编程.pdf》这本书可能涵盖了上述内容的详细解释和实例代码,它可以帮助...

    小米抢购软件 源码 学习使用

    本资源包含的是小米抢购软件的源代码,对于学习自动化脚本编写、网络请求处理以及多线程技术的开发者来说,这是一个极具价值的学习材料。下面将对其中可能涉及的知识点进行详细阐述。 1. **自动化脚本编程**:抢购...

    uc/os ii 代码 笔记

    uc/OS II提供了软件定时器,通过`OSTimer*`函数设置和管理。定时器可以在指定时间后触发回调函数,用于实现延时操作或周期性任务。 ### 6. **中断服务** uc/OS II中断服务的处理与任务调度紧密相关。中断服务完成...

    JAVA002打飞机游戏设计(程序+文).zip

    6. **动画制作**:通过定时器(Timer)和帧率控制,实现游戏元素的动态更新和动画效果,例如飞机的移动、子弹飞行、爆炸效果等。 7. **碰撞检测**:学习如何检测飞机、子弹与敌机或其他障碍物之间的碰撞,通常可以...

    JAVA画图形学程序(文+源代码).zip

    8. **动画原理**:通过定时器(Timer类)或者多线程,可以实现图形的动态效果,如移动、旋转等。 源代码部分很可能是示例程序,涵盖上述概念的实际应用。这些示例可能包括简单的形状绘制、复杂图形的构建、交互式...

    万年历(万年历查询)

    此外,为了实现节日提醒,开发者可能使用了定时器组件,当设定的日期到来时,程序会自动触发提醒通知用户。 在C#中,事件处理和多线程技术也可能是实现节日提醒的关键。事件处理允许程序响应特定的用户操作或系统...

    java-lianliankan.rar_游戏_Visual_C++_

    这可能涉及到定时器(Timer)和线程(Thread)的使用,以及图形的缓动效果实现。 6. **错误处理与调试**:良好的错误处理机制可以提高游戏的稳定性和可靠性。开发者可能会使用try-catch语句来捕获和处理可能出现的...

Global site tag (gtag.js) - Google Analytics