Junior — Middle
Jaké jsou výhody používání gorutin ve srovnání se systémovými vlákny pro zvýšení výkonu aplikací?
sobes.tech AI
Odpověď od AI
Gorutiny v Go mají několik výhod oproti systémovým vláknům:
- Lehkost: gorutiny zabírají mnohem méně paměti (obvykle několik kilobajtů), zatímco systémová vlákna vyžadují mnohem více zdrojů.
- Škálovatelnost: je možné spustit tisíce nebo dokonce miliony gorutin současně, což je s vlákny složité.
- Rychlá změna kontextu: plánovač Go efektivně spravuje gorutiny a přepíná mezi nimi rychleji než operační systém mezi vlákny.
- Jednoduchost synchronizace: vestavěné kanály a další primitives usnadňují výměnu dat mezi gorutinami.
Příklad vytvoření gorutiny:
package main
import (
"fmt"
"time"
)
func sayHello() {
fmt.Println("Ahoj z gorutiny")
}
func main() {
go sayHello() // spuštění gorutiny
time.Sleep(time.Second) // počkáme, až se gorutina dokončí
}