- Обработка HTTP-запросов - горутины позволяют обрабатывать множество запросов параллельно без блокировки основного потока:
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
go processRequest(r) // Асинхронная обработка
w.Write([]byte("OK"))
})
- Параллельные вычисления - распараллеливание CPU-bound задач:
results := make(chan int)
go calculatePart(data[:n/2], results)
go calculatePart(data[n/2:], results)
res1, res2 := <-results, <-results
- Чтение/запись в несколько источников - одновременная работа с разными БД, файлами или сетевыми ресурсами:
var wg sync.WaitGroup
wg.Add(2)
go func() { defer wg.Done(); readFromDB1() }()
go func() { defer wg.Done(); readFromDB2() }()
wg.Wait()
- Таймеры и долгие операции - выполнение фоновых задач без блокировки UI/API:
go func() {
time.Sleep(5 * time.Minute)
cleanupCache()
}()