• Java中基本知识梳理【定时器实现多线程】-----2015年3月15日


    Timer介绍:

    (1)基本方法:

      

    public Timer():创建一个新计时器。相关的线程 作为守护程序运行。

    public void schedule(TimerTask task, long delay, long period)

    安排指定的任务从指定的延迟后开始进行重复的固定延迟执行。以近似固定的时间间隔(由指定的周期分隔)进行后续执行。 

    public void schedule(TimerTask task, Date time)

    安排在指定的时间执行指定的任务。如果此时间已过去,则安排立即执行该任务。 

    参数:

    task - 所要安排的任务。

    time - 执行任务的时间。 

    public void cancel()

    终止此计时器,丢弃所有当前已安排的任务。这不会干扰当前正在执行的任务(如果存在)。一旦终止了计时器,那么它的执行线程也会终止,并且无法根据它安排更多的任务。

    TimerTask介绍:

    public abstract void run()

    此计时器任务要执行的操作。 

    public boolean cancel()

    取消此计时器任务。如果任务安排为一次执行且还未运行,或者尚未安排,则永远不会运行。如果任务安排为重复执行,则永远不会再运行。(如果发生此调用时任务正在运行,则任务将运行完,但永远不会再运行。)  

    定时器如何实现多线程:

    将Timer对象和TimerTask对象绑定利用Timer对象中的schedule方法触发TimerTask类中run()方法实现多线程。

    实例:

    package test1;
    
    import java.util.Date;
    import java.util.IllegalFormatCodePointException;
    import java.util.Timer;
    import java.util.TimerTask;
    
    class Task extends TimerTask{
        private  int a=1;
        private int sum=0;
        public void run()
        {
            sum+=a;
            a++;
            System.out.println("HELLO");
            if(a>3)
            {
                System.out.println(sum);
                this.cancel();//这里的cancel()方法是TimerTask对象在调用,其中Timer和Timer类都含有cancel()方法
            }    
        }
    }
    public class TimerTask1 {
            public static void main(String[] args) {
                Timer time=new Timer();
                Task t=new Task();
                time.schedule(t, new Date(), 1);
                
            }
    }
  • 相关阅读:
    Samba网络配置
    嵌入式汇编程序
    GDB常用命令
    Everything搜索结果显示0 Object
    关于值类型和引用类型
    Main()

    利用python脚本自动下载ICML会议接受的文章
    如何从mac下的photos导出照片
    Erlang语言研究综述
  • 原文地址:https://www.cnblogs.com/khbcsu/p/4338892.html
Copyright © 2020-2023  润新知