易截截图软件、单文件、免安装、纯绿色、仅160KB

JAVA定时器 Timer+TimerTask

     本文首先设计一个单次定时器Timer+TimerTask,然后再次基础上设计一个循环定时器。
     我将把 java.util.Timer 和 java.util.TimerTask 统称为 Java 计时器框架,它们使程序员可以很容易地计划简单的任务(注意这些类也可用于 J2ME 中)。不过,Java 计时器框架没有足够的能力来满足许多应用程序的计划要求。甚至一项需要在每天同一时间重复执行的任务,也不能直接使用 Timer 来计划,因此我们将再Timer+TimerTask的基础上设计一个通用的循环定时器,这里称之为计划框架,从而允许更灵活的计划任务。这个框架非常简单 ―― 它包括两个类和一个接口 ―― 并且容易掌握。
一、计划单次任务
     想像一个煮蛋计时器,在数分钟之后(这时蛋煮好了)它会发出声音提醒您。Listing 1 构成了一个简单的煮蛋计时器的基本结构:
【Listing 1:单次定时器Timer+TimerTask】
import java.util.Timer;
import java.util.TimerTask;
/********************************************************************
* 单次计时器 Timer+TimerTask组合
* Timer类是线程安全的:多个线程可以共享单个 Timer 对象而无需进行外部同步。
* 与每个Timer对象相对应的是单个后台线程,用于顺序地执行所有计时器任务。
*/
public class EggTimer {
private final Timer timer = new Timer();
private final int minutes;
public EggTimer(int minutes) {
this.minutes = minutes;
}
public void start() {
timer.schedule(new TimerTask() {
public void run() {
playSound();
timer.cancel();
}
private void playSound() {
System.out.println("Your egg is ready!");
}
}, minutes * 1000);
}
public static void main(String[] args) {
EggTimer eggTimer = new EggTimer(2);
eggTimer.start();
}
}
     EggTimer 类拥有一个 Timer 实例,用于提供必要的计划。用 start() 方法启动煮蛋计时器后,它就计划了一个 TimerTask ,在指定的分钟数之后执行。时间到了, Timer 就在后台调用 TimerTask 的 start() 方法,这会使它发出声音。在取消计时器后这个应用程序就会中止。
二、计划重复执行的任务
     通过指定一个固定的执行频率或者固定的执行时间间隔, Timer


相关文档:

java中Thread线程中的 start()和run()方法的区别


两种建立线程对象的方法:
    Extends Thread
    implement Runnable
   这两种方法都可以创建一个线程对象,
public class TestThread {
    public static void main(String arg[]){
        newThread thread = new ne ......

AjaxSwing 3.0发布 可将Java Swing转化为Ajax

AjaxSwing是一个专为Java Swing应用 程序打造的Web开发平台。使用AjaxSwing,可以使为Java桌面应用程序转为Web应用。 AjaxSwing可以被看作是一个Java到HTML的转换器,其程序可以在运行时创建被浏览器解析的HTML和 JavaScript。另外,使用AjaxSwing无需对程序和业务逻辑进行大幅修改修改,它允许开发者使用标准Swing组件来实 ......

java 面试题59道(含参考答案)


Java
基础方面
:
 
1
、作用域
public,private,protected,
以及不写时的区别
答:
区别如下:
作用域
           
当前类
       
同一
package  
子孙类
     &n ......

JAVA反射机制

JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
package mypakage;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method; ......

如何使用Proxy模式及Java内建的动态代理机制

1.Proxy
模式
代理模式支持将某些操作从实际的对象中分离出来,通过它的代理类提供处理。这样便于修改和管理这些特定的操作。
下面示例一个代理模式的实现。
<<interface>>Subject.java
package
com.zj.proxy;
 
public

interface
Subject {
   
void
operation1();
......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号