Junior — Middle
Koji je maksimalni broj gorutina koje se mogu pokrenuti istovremeno bez značajnih problema za sistem?
sobes.tech АИ
Одговор од АИ
U Go, maksimalni broj gorutina koje se mogu istovremeno pokrenuti zavisi od sistemskih resursa (RAM memorije, CPU vremena) i od prirode zadataka koje obavljaju. Teoretski, moguće je pokrenuti stotine hiljada ili čak milione gorutina, jer su one veoma lagane u poređenju sa nitima operativnog sistema.
Međutim, u praksi:
- Ako gorutine aktivno koriste CPU, prevelik broj može dovesti do smanjenja performansi zbog prebacivanja konteksta.
- Ako gorutine blokiraju na ulazu/izlazu ili čekaju događaje, može ih biti znatno više bez većih problema.
Obično, u realnim aplikacijama, pokreće se od nekoliko stotina do nekoliko hiljada gorutina bez problema. Ako je potrebno skaliranje, preporučuje se profilisanje aplikacije i praćenje potrošnje memorije i opterećenja CPU-a.
Primer kreiranja velikog broja gorutina:
for i := 0; i < 100000; i++ {
go func(n int) {
// neki posao
fmt.Println(n)
}(i)
}