Sobes.tech
Middle+

Mis on asünkroonsus, paralleelsus ja konkurentsus Go kontekstis?

sobes.tech AI

Vastus AI-lt

Go kontekstā:

  • Asinhroniskums — operāciju izpilde bez galvenā plūsmas bloķēšanas, parasti, izmantojot gorutīnas un kanālus. Tas ļauj uzsākt uzdevumus, kas var tikt izpildīti neatkarīgi un nav jāgaida to pabeigšana.

  • Paralēlisms — vairāk uzdevumu vienlaicīga izpilde dažādos procesora kodolos. Go to sasniedz ar gorutīnu plānotāju, kas tās sadala sistēmas pavedienos.

  • Konkurence — programmas spēja pārvaldīt vairākus uzdevumus, kas var tikt izpildīti vienlaicīgi vai secīgi, nodrošinot pareizu piekļuvi koplietotajiem resursiem.

Gorutīnas piemērs:

func worker(id int) {
    fmt.Printf("Darbinieks %d sāka\n", id)
    // darbs
}

func main() {
    for i := 1; i <= 5; i++ {
        go worker(i) // asimhroniska uzsākšana
    }
    time.Sleep(time.Second) // gaidām pabeigšanu
}