Sobes.tech
Junior — Middle

Kokia buvo įsimintiniausia gorutinų naudojimo situacija jūsų programavimo patirtyje?

sobes.tech AI

Atsakymas iš AI

Vienas iš įsimintiniausių atvejų mano praktikoje su gorutinomis buvo aukštos našumo serverio kūrimas, kuris apdorodavo daugybę vienu metu veikiančių tinklo ryšių.

Gorutinės leido lengvai ir efektyviai paleisti atskirus lengvus srautus kiekvienam ryšiui be reikšmingų sisteminių išteklių sąnaudų. Dėl to serveris galėjo aptarnauti tūkstančius klientų vienu metu, neblokiruojant pagrindinio srauto.

Pavyzdys:

func handleConnection(conn net.Conn) {
    defer conn.Close()
    // ryšio apdorojimas
}

func main() {
    listener, _ := net.Listen("tcp", ":8080")
    for {
        conn, _ := listener.Accept()
        go handleConnection(conn) // paleisti goroutine kiekvienam klientui
    }
}

Šis požiūris žymiai supaprastina kodą ir padidina programų mastelį, ypač tinklo ir konkurencijos užduotyse.