Sobes.tech
Junior — Middle

Aký je rozdiel medzi gorutinami a tradičnými vláknami?

sobes.tech AI

Odpoveď od AI

Gorutiny v Go sú ľahké vlákna vykonávania, ktoré spravuje runtime Go, na rozdiel od tradičných vlákien operačného systému.

Hlavné rozdiely:

  • Ľahkosť: Gorutiny zaberajú oveľa menej pamäte (zvyčajne niekoľko kilobajtov), zatiaľ čo systémové vlákna vyžadujú podstatne viac zdrojov.

  • Škálovateľnosť: Je možné spustiť tisíce alebo dokonca milióny gorutín súčasne, čo je s tradičnými vláknami ťažké.

  • Plánovanie: Plánovač gorutín je integrovaný do runtime Go a efektívne rozdeľuje gorutiny medzi systémové vlákna.

  • Synchronizácia: Pre komunikáciu medzi gorutinami sa často používajú kanály (channels), čo zjednodušuje výmenu dát a synchronizáciu.

Príklad vytvorenia gorutiny:

func sayHello() {
    fmt.Println("Ahoj z gorutiny")
}

func main() {
    go sayHello() // spustí gorutinu
    time.Sleep(time.Second) // čaká, aby gorutina mohla dokončiť
}

Gorutiny sú teda efektívny spôsob paralelného vykonávania kódu s menšími nákladmi ako tradičné vlákna.