易截截图软件、单文件、免安装、纯绿色、仅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 ......

一些常见Java异常归类(一)

UnsupportedClassVersionError
  不支持的类版本错误。当Java虚拟机试图从读取某个类文件,但是发现该文件的主、次版本号不被当前Java虚拟机支持的时候,抛出该错误。
  java.lang.VerifyError
  验证错误。当验证器检测到某个类文件中存在内部不兼容或者安全问题时抛出该错误。
  java.lang.VirtualMachineErr ......

Java程序员转到C++开发容易发生的疏漏。

1. 变量不做初始化。
2. 分配的对象不做销毁。一个好的习惯就是,每生成一个类时,就自动写一个自己的InitInstanceMember,和 ReleaseInstanceMember()方法。
3. 包的分类,如果自己不做source的逻辑分类,C++环境一般是不会自己做的。这个跟Java中的package和文件物理上存储方式一致是不一样的。
    C++ ......

java常用设计模式

设计模式
一个程序员对设计模式的理解:
“不懂”为什么要把很简单的东西搞得那么复杂。后来随着软件开发经验的增加才开始明白我所看到的“复杂”恰恰就是设计模式的精髓所在,我所理解的“简单”就是一把钥匙开一把锁的模式,目的仅仅是着眼于解决现在的问题,而设计模式的“复杂&rdq ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号