Java2的开发包中提供了一种很使用的线程功能:提前安排将来某段时间执行某任务Timer ,TimerTask。
你可以使用这些类创建后台进程,让其在等待一段规定的时间后执行,或者让其没隔一段时间执行。
你也可以用Thread来完成,但利用Timer与TimerTask显然省事不少。
TimerTask实现了Runnable接口,待执行的任务置于run()中。
Timer是一个安排TimerTask的类此此两者一般一起工作。所应用时首先硬创建一个TimerTask的对象,
然后用一个Timer的类对象安排执行它
Timer类包含的方法有:
1.Timer()
以常规方式运行task
2.Timer(boolean)
true时使用后台进程线程。只要剩下的程序记叙运行,后台进程线程就会执行。
3.public void cancel()
终止Timer的功能执行,但不会对正在执行的任务有影响。当执行cancel方法后将不能再用其分配任务。
4.public void schedule(TimerTask task,Date time)
task被安排在time指定的时间执行,如果时间为过去时则任务立刻执行。
5.public void schedule(TimerTask task, Date firstTime, long period)
task被安排在time指定的时间执行,执行后将每隔period(毫秒)反复执行。由于规定的时间间隔并不能保证与时钟精准的同不步,所以该方
法最适合从短期看保持频率准确是更重要的的地方
6.public void schedule(TimerTask task, long delay)
task被安排在delay(毫秒)指定的时间后执行。
7.public void schedule(TimerTask task,long delay, long period)
task被安排在delay(毫秒)指定的时间后执行。执行后将每隔period(毫秒)反复执行。
8.public void scheduleAtFixedRate(TimerTask task,Date firstTime, long period)
task被安排在firstTime指定的时间执行。执行后将每隔period(毫秒)反复执行。每一次重复的时间时盒第一次执行而不是和前一次执行有关
。因此执行的总速度是固定的。
9.public void scheduleAtFixedRate(TimerTask task,long delay,long period)
task被安排在delay(毫秒)指定的时间后执行。执行后将每隔period(毫秒)反复执行。每一次重复的时间时盒第一次执行而不是和前一次执
行有关。因此执行的总速度是固定的。
TimerTask的主要方法:
1.public boolean cancel()
终止任务的执行运行。如果Timer时要求循环执行的,则如果正在执行,则执行完了就再步会循环。如果还未执行或处于停歇期,则不会执行
了
2.public abstract void run()
3.public long scheduledExecutionTime()
返回被安排最后执行任务的时间。一般确定任务的当今的实行是否足够及时 ,证明进行被计划的活动为正当:
public void run() {
if (System.currentTimeMillis() - scheduledExecutionTime() >=
MAX_TARDINESS)
return; // Too late; skip this execution.
// Perform the task
}
4.protected TimerTask()
例:
java 代码
- package com.robin.demo.timertask;
-
- import java.util.Timer;
- import java.util.TimerTask;
-
- public class TimerTaskDemo extends TimerTask {
-
- String index;
-
- Timer myTimer = new Timer();
-
- public TimerTaskDemo(String index) {
- this.index = index;
- }
-
- public void run() {
- System.out.println(index);
- }
-
-
-
-
- public static void main(String[] args) {
- TimerTaskDemo myTask1 = new TimerTaskDemo("First task");
- myTask1.start(0,3);
- TimerTaskDemo myTask2 = new TimerTaskDemo("Second task");
- myTask2.start(0,1);
-
- try{
- Thread.sleep(6000);
- }
- catch(InterruptedException e){
- }
-
- myTask1.end();
- myTask2.end();
-
- }
- public void start(int delay, int internal) {
- myTimer.schedule(this, delay * 1000, internal * 1000);
- }
- public void end(){
- myTimer.cancel();
- }
- }
分享到:
相关推荐
我们平时经常会用到timer,不过将timer放在主线程会加重主线程的负担 所以我们更倾向于使用多线程实现timer,每隔一段时间再通知主线程更新ui 大致思路: 使用thread,run,...使用timer,timerTask实现定时器功能
Java定时器应用主要涉及到`Timer`类和`TimerTask`类,这两个类是Java.util包下的,用于实现延时和周期性任务的调度。...但`Timer`和`TimerTask`对于初学者来说是一个很好的入门选择,因为它们的使用相对简单直观。
Java中的定时任务是编程中非常常见的一种需求,用于在特定时间执行特定...总的来说,Java的`Timer`和`TimerTask`是入门级的定时任务实现方式,适合简单的定时需求。对于更复杂的应用场景,应考虑使用更专业的定时框架。
本文将深入探讨如何编写Android计时器程序,为初学者提供入门指导。 首先,我们需要了解Android应用的基本结构。一个Android应用通常由多个组件组成,如Activity、Service、BroadcastReceiver和ContentProvider。在...
J2ME还提供了一个定时器机制(Timer和TimerTask),用于实现游戏循环和动画效果。 在编写游戏逻辑时,理解面向对象编程(OOP)概念至关重要。游戏中的角色、场景、物理规则等可以抽象为类,通过继承和多态性实现...
Java的Timer和TimerTask类可以用于实现定时更新和动画帧的调度。 7. **文件I/O**:游戏可能需要保存和加载玩家进度,这就涉及到文件读写操作。Java的File、InputStream和OutputStream类是实现这一功能的基础。 8. ...
3. **定时任务**:通过`Timer`和`TimerTask`类实现每秒自动更新时间。 #### 二、核心代码解析 ##### 1. 导入包及类 ```java package thread; // 应该是包名,但这里命名为“thread”可能会导致与其他包冲突 ...
4. **Java Web中的Timer应用**:"Java Web中 Timer应用.doc"和"Java 类Timer和TimerTask的使用.doc"可能讨论了Java的定时器功能,这在需要周期性任务执行的场景中非常有用,例如后台数据刷新、定时发送邮件等。...
4. **计时器**:通过定时器更新动画,例如使用`javax.microedition.midlet.Timer`和`javax.microedition.midlet.TimerTask`。 5. **状态管理**:在J2ME中,应用程序通常由多个状态组成,如主菜单、游戏进行中、暂停...
* Java 的 Util 包中的 Stack 类、Timer 类、TimerTask 类的使用方法 * Java 的 Swing 包中的窗口类、按钮类、标签类、面板类、复选框类等一些常用组件的用法 * 通过这些组件来掌握事件监听器的用法、Java 中栈的...
为了实现游戏逻辑,我们需要使用到J2ME的时间管理机制,比如Timer和TimerTask。通过设置定时器,我们可以控制游戏的节奏,例如方块的下落速度或者玩家的操作间隔。同时,我们需要编写碰撞检测算法,检测方块与屏幕...
6. **定时器(Timer)**:在Java中,可以使用java.util.Timer和TimerTask类来实现定时任务。在SSM项目中,如果需要定期执行某些任务,如数据清理、统计分析等,可以借助Spring的TaskScheduler或者Quartz等第三方库来...
JAVA的java.util.Timer和TimerTask类可以用来安排定时任务。 3. 数据持久化:如果游戏有得分系统,那么得分数据需要保存。JAVA提供了文件I/O操作,如FileWriter和BufferedWriter,可以将得分写入文件,实现数据持久...
`Timer`类用于创建定时任务,而`TimerTask`是定义定时任务的类。例如,以下代码每隔2秒执行一次任务,然后在下一次执行时间隔4秒,再接着每隔2秒,如此循环: ```java public static void main(String[] args) { ...
- **成员变量**:包括一个布尔标志 `started` 用于标记 `startApp()` 方法是否首次被调用、一个 `Thread` 对象 `thread` 用于后台线程处理、一个 `Timer` 对象 `timer` 以及一个 `TimerTask` 对象 `task` 用于定时...
4. **定时任务**:`timerTask`示例可能使用了`java.util.Timer`和`TimerTask`类来执行定时任务。这两个类允许程序在指定的时间间隔执行特定任务,常用于后台服务或定时提醒等功能。 5. **卡片布局管理器**:`...
2. 时间管理:通过定时器(Timer)和定时器任务(TimerTask)实现游戏的帧率控制,确保游戏流畅运行。 3. 碰撞检测:通过比较坦克和地图、子弹的坐标,判断是否发生碰撞,通常采用矩形碰撞检测法。 4. 状态管理:...
3. 时间管理:为了实现动态游戏,需要使用Timer和TimerTask类来控制游戏循环和动画帧率。 五、砖块破坏者游戏 "brickbreaker.zip"可能包含一个砖块破坏者的示例代码。这个经典的弹球游戏通常包括一个球和一个挡板,...
<br>AOP 入门 AOP 的观念与术语都不是很直觉,可以先从代理机制(Spring 实现 AOP 的一种方式)来看看实际的例子,从而了解 AOP 的观念与各种术语。 从代理机制初探 AOP 动态代理 <br>AOP 观念与...