Как реализовать семафор через канал?

Ответ

Буферизованный канал с ёмкостью n: отправка - захват, приём - освобождение. Ограничивает число одновременных операций.

sem := make(chan struct{}, 10)
sem <- struct{}{}   // acquire
defer func() { <-sem }()  // release
doWork()
🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.