画个可以闪动的“|”,表明焦点。
众所周知,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
分享到:
相关推荐
"MCS-51单片机内部定时器/计数器的工作原理、控制字和应用实例" MCS-51单片机内部定时器/计数器是单片机系统中的一种重要组件,负责实现定时和计数功能。本文将对MCS-51单片机内部定时器/计数器的工作原理、控制字...
积算型定时器又称断电保持型定时器,它和通用型定时器的区别在于积算型定时器在定时过程中,如果驱动条件不成立或停电引起计时停止,积算型定时器能保持计时当前值,等到驱动条件成立或复电后,计时会在原计时基础上...
- **TMOD定时器/计数器模式控制寄存器**:用于配置定时器的工作方式和功能。 | 位 | 功能 | |------|--------------------------------------------------------| | GATE | 计时器工作门控制 | | C/T | 定时/...
### S7-1200_1500PLC中的定时器为什么不计时或不工作? 在工业自动化领域,可编程逻辑控制器(PLC)是实现自动化控制的关键设备之一。西门子S7-1200和S7-1500系列PLC因其高性能、灵活性以及强大的功能而在各种工业...
### FX_2N_定时器的应用 #### 一、引言 可编程逻辑控制器(PLC)作为一种广泛应用在工业领域的新型自动控制装置,凭借其丰富的功能指令和编程元件,在自动化控制领域发挥着重要作用。合理利用这些功能指令和编程...
辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 ...
在Windows编程环境中,MFC(Microsoft Foundation Classes)库提供了一种方便的方式来实现应用程序中的定时功能,这就是MFC定时器。MFC定时器主要用于在特定时间间隔后触发一个事件,这在许多应用场景中都非常有用,...
STM32定时器级联是STM32微控制器中一种高效利用硬件资源、扩展定时功能的方法。在STM32系列芯片中,定时器可以被配置为级联模式,以实现更复杂的定时或计数任务,比如产生精确的PWM输出、高分辨率的计数等。下面我们...
如果先初始化从模式定时器3,定时器3工作在触发模式下,TRGI信号来源为定时器2的TRGO,而定时器2还未初始化,故TRGO信号来源默认是UG位,故在定时器2初始化过程中会置位UG位,从而触发定时器3的从模式触发模式,导致...
Oracle 定时器 Oracle 定时器是一种自动化任务执行机制,允许数据库管理员和开发者在特定时间执行特定的任务,例如定时清除数据、定时汇总数据等。 Oracle 定时器的使用可以极大地提高数据库的自动化处理能力和效率...
标题中的“fzTThreadTimer”是一个专为解决Delphi自带定时控件局限性而设计的线程定时器组件。描述中提到,Delphi内置的定时器控件(如TTimer)是基于消息机制工作的,这意味着它依赖于应用程序的消息循环来触发事件...
**ACE完整牛逼定时器详解** ACE(Adaptive Communication Environment)是一个开源的、跨平台的C++库,专为分布式实时系统设计,提供了一系列高级网络编程接口和工具。在这个“ACE完整牛逼定时器”中,我们将深入...
在嵌入式系统开发中,ARM处理器是一种广泛应用的微处理器架构,它提供了丰富的硬件资源,包括定时器。本文将深入探讨ARM处理器中的定时器0和定时器1,并结合PROTEUS仿真工具进行讲解。 定时器在嵌入式系统中扮演着...
在嵌入式系统或者实时操作系统(RTOS)的开发中,定时器是不可或缺的组件,用于实现各种时间相关的功能,如任务调度、事件触发、超时检测等。标题提到的“多定时器复用一个硬件定时器”是一种高效利用硬件资源的技术...
51定时器计算工具是一款专为51单片机编程者设计的应用软件,它简化了51系列定时器的设置和计算过程。51单片机是广泛应用在电子工程、物联网设备、自动化控制等领域的微控制器,其内部包含了多个定时器资源,用于执行...
555集成定时器是一种非常常见的电子元器件,其在电子设计中扮演着重要的角色,广泛应用在各种电子设备中,如电子控制、检测、仪表、家电、音响、报警系统、玩具等。555定时器的独特之处在于它结合了模拟电路和数字...
在JavaScript编程中,定时器(Timer)是常用于实现异步操作的重要工具,例如延迟执行、周期性执行任务。然而,如果不妥善管理,定时器可能会引发一些问题,比如多次调用定时器导致叠加,以及定时器无法清除。本文将...
| RS | 读取定时器/计数器目标值 | | WS | 写入定时器/计数器目标值 | | RK | 读取定时器/计数器经过值 | | WK | 写入定时器/计数器经过值 | | MC | 登录及复位监控触点 | | MD | 登录及复位监控数据 | | MG | 执行...
根据给定的文件信息,我们可以总结出以下关于“51单片机定时器C语言程序”的相关知识点: ### 一、51单片机简介 51单片机是一种广泛应用于电子设备中的微控制器,其核心是8位的中央处理器(CPU)。51单片机因其...
STM32定时器计算工具是专为STM32微控制器设计的一款实用软件,它简化了在嵌入式系统开发过程中对定时器配置的复杂计算。STM32是意法半导体(STMicroelectronics)推出的基于ARM Cortex-M内核的微控制器系列,广泛...