ACE定时器

ACE定时器采用线程实现,调度定时器时会创建线程。在Windows下,每个定时器对应一个线程,但`cancel`仅停止定时器,不减少线程。为了释放资源,需要手动结束分发线程。定时器回调处理时间过长不会影响新的定时器触发,底层基于消息机制。`schedule`增加定时器,`active`启动分发线程,`deactivate`通知分发线程终止,而`close`方法在非主动对象情况下用于释放资源。ACE定时器与操作系统的等待和用户定时器有区别,前者精度高且线程安全,后者主要用于消息回调。
摘要由CSDN通过智能技术生成

1) ACE_Thread_Timer_Queue_Adapter类的几个关键方法
调度定时器方法

/// Schedule the timer according to the semantics of the <TQ>; wakes
  /// up the dispatching thread.
  long schedule (ACE_Event_Handler *handler,
                 const void *act,
                 const ACE_Time_Value &future_time,
                 const ACE_Time_Value &interval = ACE_Time_Value::zero);

  /// Cancel the @a timer_id and return the @a act parameter if an
  /// address is passed in. Also wakes up the dispatching thread.
  int cancel (long timer_id, const void **act = 0);

  /// Runs the dispatching thread.
  virtual int svc (void);

  /// Inform the dispatching thread that it should terminate.
  virtual void deactivate (void);
  /**
   * Block until there are no more threads running in this task.
   * This method will not wait for either detached or daemon threads;
   * the threads m
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值