• ICE的Timer和TimerTask


    IceUtil中提供了Timer和TimerTask来实现定时计算。Timer可以定时或重复执行TimerTask。

    class Timer : /* ... */ {
    public:
        Timer();
    
        void schedule(const TimerTaskPtr& task,
                      const IceUtil::Time& interval);
        void scheduleRepeated(const TimerTaskPtr& task,
                              const IceUtil::Time& interval);
        bool cancel(const TimerTaskPtr& task);
        void destroy();
    };
    typedef IceUtil::Handle<Timer> TimerPtr;
    
    class TimerTask : virtual public IceUtil::Shared {
    public:
        virtual ~TimerTask() { }
        virtual void runTimerTask() = 0;
    };
    typedef IceUtil::Handle<TimerTask> TimerTaskPtr;

    schedule: 在interval时间后执行timertask中的runTimerTask,只执行一次。

    scheduleRepeated: 每隔interval时间,就会重复执行timerTask实例的runTimerTask。

    cancel: 取消重复执行的task,对于一次性的task无效。正在运行的task会正常结束后,被取消。

    destroy: 删除执行表上的所有task。

    补:

    1.纯虚函数使类成为抽象类,不能实例化。只能子类继承并实现所有纯虚函数。

    2.虚继承是多重继承下的特有概念,避免虚基类(Shared)在子类中有过个对象出现。

    3.IceUtil::Time

    class Time {
    public:
    Time();
    static Time now();
    static Time seconds(long);
    static Time milliSeconds(long);
    static Time microSeconds(long long);
    ...
    }
    IceUtil::Time t = IceUtil::Time::seconds(5);


  • 相关阅读:
    LeetCode_4——寻找两个有序数组的中位数
    Java的CAS与ABA问题
    跨域问题解决
    解决git-for-windows官网下载速度慢的问题
    Java对观察者模式的支持
    Java动态代理
    设计模式七大原则
    UML中的类图关系
    布隆过滤器(Bloom Filter)与Hash算法
    Ubuntu16安装fabric1.4.4环境
  • 原文地址:https://www.cnblogs.com/whuqin/p/4982032.html
Copyright © 2020-2023  润新知