zoukankan      html  css  js  c++  java
  • java定时器本身就是多线程

    定时器

    1、在应用开发中,经常需要一些周期性的操作,比如每5分钟执行某一操作等。对于这样的操作最方便、高效的实现方式就是使用java.util.Timer工具类。

    private java.util.Timer timer;
    timer = new Timer(true);
    timer.schedule(
    new java.util.TimerTask() { public void run() { //server.checkNewMail(); 要操作的方法 } }, 0, 5*60*1000); 
          第一个参数是要操作的方法,第二个参数是要设定延迟的时间,第三个参数是周期的设定,每隔多长时间执行该操作。

        使用这几行代码之后,Timer本身会每隔5分钟调用一遍server.checkNewMail()方法,不需要自己启动线程。Timer本身也是多线程同步的,多个线程可以共用一个Timer,不需要外部的同步代码。

     
    2、
    (1)Timer.schedule(TimerTask task,Date time)安排在制定的时间执行指定的任务。
    (2)Timer.schedule(TimerTask task,Date firstTime ,long period)安排指定的任务在指定的时间开始进行重复的固定延迟执行.
    (3)Timer.schedule(TimerTask task,long delay)安排在指定延迟后执行指定的任务.
    (4)Timer.schedule(TimerTask task,long delay,long period)安排指定的任务从指定的延迟后开始进行重复的固定延迟执行.
    (5)Timer.scheduleAtFixedRate(TimerTask task,Date firstTime,long period)安排指定的任务在指定的时间开始进行重复的固定速率执行.
    (6)Timer.scheduleAtFixedRate(TimerTask task,long delay,long period)安排指定的任务在指定的延迟后开始进行重复的固定速率执行.
    import java.util.Timer;
    import java.util.TimerTask;
    
    public class TryTimer {
        public static void main(String[] args) {
            Timer timer = new Timer();
            timer.schedule(new TimerTask() {
                public void run() {
                    System.out.println("test");
                }
            }, 0, 1000);// 0ms之后开始执行,每隔1000ms执行一次
        }    
    }

    一个好的定时器框架例子,连接如下
    http://www.cnblogs.com/phinecos/archive/2008/02/25/1081354.html

  • 相关阅读:
    数组中的趣味题二
    数组中的趣味题一
    归并排序
    堆内存与栈内存
    c++中的继承和组合
    直接插入排序
    NYOJ 1067 Compress String(区间dp)
    C++ Primer 学习笔记与思考_7 void和void*指针的使用方法
    ucgui界面设计演示样例2
    手机无法连接电脑的手机助手
  • 原文地址:https://www.cnblogs.com/yaowukonga/p/2870223.html
Copyright © 2011-2022 走看看