Buffered канал с размером N работает как семафор на N: отправка в канал — acquire (блокируется если буфер полный), чтение — release. sem := make(chan struct{}, 10) ограничит до 10 одновременных операций. Каждая горутина делает sem <- struct{}{} перед работой и <-sem после. Это проще чем sync.Semaphore из x/sync для простых случаев.
Что такое buffered channel как семафор?
Middle
214 просмотровAFK Offer AI
Что такое bounded context в микросервисах?