ZIO 中的有界优先级队列
Bounded priority queue in ZIO
ZIO中有TPriorityQueue
是无界的。有没有办法让它变得有界?
如果你不太关心性能,你可以像这样快速而肮脏地做一些事情:
case class TPW(tpq: TPriorityQueue[Int]) {
def offer(e: Int) = ZSTM.whenM(tpq.size.map(_ < 50))(tpq.offer(e))
// .. other methods
}
这将是一个丢弃队列。
ZIO中有TPriorityQueue
是无界的。有没有办法让它变得有界?
如果你不太关心性能,你可以像这样快速而肮脏地做一些事情:
case class TPW(tpq: TPriorityQueue[Int]) {
def offer(e: Int) = ZSTM.whenM(tpq.size.map(_ < 50))(tpq.offer(e))
// .. other methods
}
这将是一个丢弃队列。