NewTimeWheel 创建一个时间轮
(name string, interval int64, scales int, maxCap int)
| 49 | |
| 50 | // NewTimeWheel 创建一个时间轮 |
| 51 | func NewTimeWheel(name string, interval int64, scales int, maxCap int) *TimeWheel { |
| 52 | // name:时间轮的名称 |
| 53 | // interval:每个刻度之间的duration时间间隔 |
| 54 | // scales:当前时间轮的轮盘一共多少个刻度(如我们正常的时钟就是12个刻度) |
| 55 | // maxCap: 每个刻度所最大保存的Timer定时器个数 |
| 56 | |
| 57 | tw := &TimeWheel{ |
| 58 | name: name, |
| 59 | interval: interval, |
| 60 | scales: scales, |
| 61 | maxCap: maxCap, |
| 62 | timerQueue: make(map[int]map[uint32]*Timer, scales), |
| 63 | } |
| 64 | //初始化map |
| 65 | for i := 0; i < scales; i++ { |
| 66 | tw.timerQueue[i] = make(map[uint32]*Timer, maxCap) |
| 67 | } |
| 68 | |
| 69 | zlog.Ins().InfoF("Init timerWhell name = %s is Done!", tw.name) |
| 70 | return tw |
| 71 | } |
| 72 | |
| 73 | /* |
| 74 | 将一个timer定时器加入到分层时间轮中 |