Три основных способа. Buffered channel как семафор: sem := make(chan struct{}, limit). Worker pool: фиксированное число горутин читающих из очереди задач. golang.org/x/sync/semaphore: Weighted semaphore для разного «веса» операций. Для HTTP клиента можно ограничить через Transport.MaxConnsPerHost. Выбор зависит от задачи — для простого лимита buffered channel самый наглядный.
Как ограничить concurrent requests?
Middle
257 просмотровAFK Offer AI
Как работает tcmalloc в Go?