Как управлять 100 000 горутин?

Ответ

Использовать пул воркеров (ограниченное число горутин), которые берут задачи из канала. Либо семафор через буферизованный канал для ограничения параллелизма. Не запускать 100k горутин без ограничения - возможны нехватка памяти и перегрузка планировщика.

jobs := make(chan int, 100)
for w := 0; w < 1000; w++ { go func() { for j := range jobs { do(j) } }() }
for j := 0; j < 100000; j++ { jobs <- j }
close(jobs)
🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.