zoukankan      html  css  js  c++  java
  • 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);
                
            }
    }
  • 相关阅读:
    private
    接口
    抽象类的认识
    静态导入和类中的代码块
    instanceof 与 应用类型强转
    重写的理解
    继承初体验
    赶紧收藏!春招Java面经总结,拿大厂Offer的必备复习资料!
    react native 升级到0.31.0的相关问题 mac xcode开发环境
    c# 线程池多任务处理并返回值
  • 原文地址:https://www.cnblogs.com/khbcsu/p/4338892.html
Copyright © 2011-2022 走看看