`
cson_hp
  • 浏览: 13778 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

┏☆━|定时器|━☆┓

阅读更多

     画个可以闪动的“|”,表明焦点。

 众所周知,Java语言在语言的低层就支持多线程,在Java中可以使用两种方式来实现多线程操作,这两种方式依次是:

1、继承Thread类

2、实现Runnable接口

但是Java语言中还有两个类,可以组合来实现多线程的控制,这两个类就是java.util包中的Timer和TimerTask类。和上面的实现方式相比,使用这种方式来实现多线程,可以很方便的开启多个线程,并且代码的结构比较清晰,但是创建类的数量比较多,系统开销稍微大一些。下面详细进行一下介绍:

Timer类是一个定时器,可以每隔一段固定的时间做一件事情,而且可以很方便的停止这些动作。依次为:

构造对象: Timer timer = new Timer();

对象创建以后,可以使用其中的schedule或者是scheduleAtFixedRate方法起启动一个任务(Task)动作。需要停止时,可以调用Timer对象的cancel方法实现,该方法可以停止该Timer启动的所有任务(Task)。

TimerTask类是一个线程类,所有线程的动作代码都写在该类内部。TimerTask是一个抽象类,在实际使用过程中,一般是继承TimerTask类,然后实现实际的操作,停止TimerTask可以使用TimerTask对象里面的cancel方法。

下面是一个实现简单的数字变化的J2ME代码:

package shandong;

import java.util.*;

import javax.microedition.lcdui.*;

/**

* 使用Timer和TimerTask实现多线程

* 该代码实现的功能是屏幕上的数字一直增加,按下5键暂停,再次按下5键继续增加

*/

public class NumberCanvas extends Canvas {

/**定时器*/

Timer timer;

/**屏幕上显示的数字*/

private int number = 0;

/**屏幕宽度*/

private int width;

/**屏幕高度*/

private int height;

public NumberCanvas() {

//获得屏幕的高度和宽度

width = this.getWidth();

height = this.getHeight();

//启动线程

start();

}

/**

* 启动线程

*/

private void start(){

if(timer == null){

//启动定时器

timer = new Timer();

timer.schedule(new NumberTimerTask(),0,300);

}

}

/**

* 停止线程

*/

private void stop(){ if(timer != null){

//停止线程

timer.cancel();

timer = null;

}

}

/**

* 按键处理

* @param keyCode int 按下的键值

*/

public void keyPressed(int keyCode){

//判断按下的数字键5

if(keyCode == Canvas.KEY_NUM5){

//判断当前的状态

if(timer == null){

start();

}else{

stop();

}

}

}

protected void paint(Graphics g) {

//清屏

g.setColor(0xffffff);

g.fillRect(0,0,width,height);

g.setColor(0x000000);

g.drawString(String.valueOf(number),50,50,Graphics.TOP | Graphics.LEFT);

}

/**

* 线程任务动作

*/

public class NumberTimerTask extends TimerTask{

public void run(){

//数字增加

number++;

//重绘

repaint();

}

}

}

  • 大小: 12.6 KB
分享到:
评论

相关推荐

    2022年单片机-MCS单片机内部定时器.ppt

    "MCS-51单片机内部定时器/计数器的工作原理、控制字和应用实例" MCS-51单片机内部定时器/计数器是单片机系统中的一种重要组件,负责实现定时和计数功能。本文将对MCS-51单片机内部定时器/计数器的工作原理、控制字...

    PLC定时器原理及应用.ppt

    积算型定时器又称断电保持型定时器,它和通用型定时器的区别在于积算型定时器在定时过程中,如果驱动条件不成立或停电引起计时停止,积算型定时器能保持计时当前值,等到驱动条件成立或复电后,计时会在原计时基础上...

    8051详细寄存器手册.pdf

    - **TMOD定时器/计数器模式控制寄存器**:用于配置定时器的工作方式和功能。 | 位 | 功能 | |------|--------------------------------------------------------| | GATE | 计时器工作门控制 | | C/T | 定时/...

    S7-1200_1500PLC中的定时器为什么不计时或不工作?.docx

    ### S7-1200_1500PLC中的定时器为什么不计时或不工作? 在工业自动化领域,可编程逻辑控制器(PLC)是实现自动化控制的关键设备之一。西门子S7-1200和S7-1500系列PLC因其高性能、灵活性以及强大的功能而在各种工业...

    FX_2N_定时器的应用

    ### FX_2N_定时器的应用 #### 一、引言 可编程逻辑控制器(PLC)作为一种广泛应用在工业领域的新型自动控制装置,凭借其丰富的功能指令和编程元件,在自动化控制领域发挥着重要作用。合理利用这些功能指令和编程...

    辅助软件 定时器计算器 辅助软件 定时器计算器

    辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 ...

    MFC定时器的使用 MFC定时器的使用

    在Windows编程环境中,MFC(Microsoft Foundation Classes)库提供了一种方便的方式来实现应用程序中的定时功能,这就是MFC定时器。MFC定时器主要用于在特定时间间隔后触发一个事件,这在许多应用场景中都非常有用,...

    STM32 定时器级联

    STM32定时器级联是STM32微控制器中一种高效利用硬件资源、扩展定时功能的方法。在STM32系列芯片中,定时器可以被配置为级联模式,以实现更复杂的定时或计数任务,比如产生精确的PWM输出、高分辨率的计数等。下面我们...

    【STM32】HAL库-使用一个定时器使能另一个定时器-主定时器触发模式demo

    如果先初始化从模式定时器3,定时器3工作在触发模式下,TRGI信号来源为定时器2的TRGO,而定时器2还未初始化,故TRGO信号来源默认是UG位,故在定时器2初始化过程中会置位UG位,从而触发定时器3的从模式触发模式,导致...

    Oracle定时器

    Oracle 定时器 Oracle 定时器是一种自动化任务执行机制,允许数据库管理员和开发者在特定时间执行特定的任务,例如定时清除数据、定时汇总数据等。 Oracle 定时器的使用可以极大地提高数据库的自动化处理能力和效率...

    fzTThreadTimer_delphi定时器_delphi_线程定时器_

    标题中的“fzTThreadTimer”是一个专为解决Delphi自带定时控件局限性而设计的线程定时器组件。描述中提到,Delphi内置的定时器控件(如TTimer)是基于消息机制工作的,这意味着它依赖于应用程序的消息循环来触发事件...

    ACE完整牛逼定时器

    **ACE完整牛逼定时器详解** ACE(Adaptive Communication Environment)是一个开源的、跨平台的C++库,专为分布式实时系统设计,提供了一系列高级网络编程接口和工具。在这个“ACE完整牛逼定时器”中,我们将深入...

    定时器0和定时器1 ARM PROTEUS

    在嵌入式系统开发中,ARM处理器是一种广泛应用的微处理器架构,它提供了丰富的硬件资源,包括定时器。本文将深入探讨ARM处理器中的定时器0和定时器1,并结合PROTEUS仿真工具进行讲解。 定时器在嵌入式系统中扮演着...

    多定时器复用一个硬件定时器

    在嵌入式系统或者实时操作系统(RTOS)的开发中,定时器是不可或缺的组件,用于实现各种时间相关的功能,如任务调度、事件触发、超时检测等。标题提到的“多定时器复用一个硬件定时器”是一种高效利用硬件资源的技术...

    51定时器计算工具

    51定时器计算工具是一款专为51单片机编程者设计的应用软件,它简化了51系列定时器的设置和计算过程。51单片机是广泛应用在电子工程、物联网设备、自动化控制等领域的微控制器,其内部包含了多个定时器资源,用于执行...

    555集成定时器 555集成定时器 555集成定时器

    555集成定时器是一种非常常见的电子元器件,其在电子设计中扮演着重要的角色,广泛应用在各种电子设备中,如电子控制、检测、仪表、家电、音响、报警系统、玩具等。555定时器的独特之处在于它结合了模拟电路和数字...

    js 封装定时器解决多次调用定时器叠加问题及定时器无法清除的问题

    在JavaScript编程中,定时器(Timer)是常用于实现异步操作的重要工具,例如延迟执行、周期性执行任务。然而,如果不妥善管理,定时器可能会引发一些问题,比如多次调用定时器导致叠加,以及定时器无法清除。本文将...

    松下PLC通信协议           

    | RS | 读取定时器/计数器目标值 | | WS | 写入定时器/计数器目标值 | | RK | 读取定时器/计数器经过值 | | WK | 写入定时器/计数器经过值 | | MC | 登录及复位监控触点 | | MD | 登录及复位监控数据 | | MG | 执行...

    51单片机定时器C语言程序

    根据给定的文件信息,我们可以总结出以下关于“51单片机定时器C语言程序”的相关知识点: ### 一、51单片机简介 51单片机是一种广泛应用于电子设备中的微控制器,其核心是8位的中央处理器(CPU)。51单片机因其...

    STM32定时器计算工具

    STM32定时器计算工具是专为STM32微控制器设计的一款实用软件,它简化了在嵌入式系统开发过程中对定时器配置的复杂计算。STM32是意法半导体(STMicroelectronics)推出的基于ARM Cortex-M内核的微控制器系列,广泛...

Global site tag (gtag.js) - Google Analytics