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.