sync.Cond — примитив для ожидания условия. Горутина может заснуть (Wait) пока другая не разбудит её (Signal — одну, Broadcast — все). Пример: producer добавил элемент в очередь и вызвал cond.Signal(), consumer спал на cond.Wait() и проснулся. Без Cond пришлось бы крутить busy loop или использовать каналы. На практике каналы в Go удобнее для большинства случаев. Cond нужен когда несколько горутин ждут одно условие и нужен Broadcast.
Зачем нужен sync.Cond?
Middle
237 просмотровAFK Offer AI
Как реализовать Observer в Go?