Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

README.md

定时器

  • timer节点的管理使用最小堆。使得距离下一次调度时间最近得Task将会被调度。
  • 支持多线程执行到期任务,支持在指定时间后执行任务、周期性执行任务、指定时间间隔重复执行指定次数任务、取消定时器等功能。包括多线程安全的hash map模块和timer模块

hash map

  • 使用std::unordered_map<K, V>作为底层数据结构,配合std::mutex,实现多线程安全的hash map

timer

  • tick计时使用std::condition_variable带过期时间的wait_for函数
  • 使用原子变量分配定时器id,记录在hash map结构中,取消定时器即删除map中对应的item
  • 使用阻塞队列存放timer节点,tick线程将到期节点的任务回调函数放入线程池,由线程池执行线程执行

测试

  • 使用普通函数、类普通成员函数、lambda对象、类静态成员函数等作为到期任务,测试指定时间后执行任务、周期性执行任务、指定时间间隔重复执行指定次数任务、取消定时器等功能