Go - 如果为空,则等待优先队列中的下一项

我正在尝试实现一个优先级队列,通过基于优先级的网络套接字发送 json 对象。我正在使用该container/heap包来实现队列。我想出了这样的事情:


for {

    if pq.Len() > 0 {

        item := heap.Pop(&pq).(*Item)

        jsonEncoder.Encode(&item)

    } else {

        time.Sleep(10 * time.Millisecond)

    }

}

是否有比轮询优先队列更好的等待新项目的方法?


温温酱
浏览 136回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP