我正在尝试实现一个优先级队列,通过基于优先级的网络套接字发送 json 对象。我正在使用该container/heap包来实现队列。我想出了这样的事情:
for {
if pq.Len() > 0 {
item := heap.Pop(&pq).(*Item)
jsonEncoder.Encode(&item)
} else {
time.Sleep(10 * time.Millisecond)
}
是否有比轮询优先队列更好的等待新项目的方法?
相关分类