什么是时间 看一下 https://zhuanlan.zhihu.com/p/121483218 写的非常清楚。 延迟队列DelayQueue 如果看完上面,会发现博主在最后提到了延迟队列DelayQueue,DelayQueue使用最小堆实现,把队列里的元素按照过期时间排序。然后开一个协程死循环与队列第一个元素比较。 golang实现DelayQueue 实现延迟队列DelayQueue要先实现一个优先队列PriorityQueue,PriorityQueue的作用是使用最小堆来找到过期时间最近的元素。