Go中级教程

收录了 1 篇文章 · 0 人关注

  • Golang-基于TimeingWheel定时器

    设计思路 在linux下实现定时器主要有如下方式 基于链表实现定时器 基于排序链表实现定时器 基于最小堆实现定时器 基于时间轮实现定时器 在这当中基于时间轮方式实现的定时器时间复杂度最小,效率最高,然而我们可以通过优先队列实现时间轮定时器。 优先队列的实现可以使用最大堆和最小堆,因此在队列中所有的数据都可以定义排序规则自动排序。我们直接通过队列中pop函数获取数据,就是我们按照自定义排序规则想要的数据。 在Golang中实现一个优先队列异常简单,在container/head包中已经帮我们封装了...