diff --git a/lock_free/delay_queue.go b/lock_free/delay_queue.go index 64d3f8d..2531aee 100644 --- a/lock_free/delay_queue.go +++ b/lock_free/delay_queue.go @@ -21,13 +21,12 @@ func (q *DelayLkQueue[T]) DelayEnqueue(value T, duration time.Duration) { // ContinuousDequeue 持续监听出队通知 func (q *DelayLkQueue[T]) ContinuousDequeue(notify ...chan T) { for { - value, ok := q.Dequeue() - if !ok { + if value, ok := q.Dequeue(); ok { + for _, n := range notify { + n <- value + } + } else { time.Sleep(time.Millisecond) // 队列为空,休眠1毫秒 - continue - } - for _, n := range notify { - n <- value } } }