Principal
Co jsou gorutiny v Go? V čem se liší goroutine od vlákna operačního systému?
sobes.tech AI
Odpověď od AI
Gorutiny v Go jsou lehké běhové vlákna řízená běhovým prostředím Go, která umožňují spouštět funkce paralelně.
Rozdíly mezi goroutinou a vláknem OS:
- Lehkost: gorutiny zabírají mnohem méně paměti (obvykle několik kilobajtů), zatímco vlákna OS jsou výrazně větší.
- Plánování: gorutiny jsou plánovány plánovačem Go uvnitř procesu, nikoli OS, což umožňuje rychlejší a efektivnější přepínání kontextu.
- Škálovatelnost: lze spustit tisíce nebo dokonce miliony gorutin současně, což není možné s vlákny OS kvůli omezením zdrojů.
Příklad vytvoření gorutiny:
func sayHello() {
fmt.Println("Ahoj z gorutiny")
}
func main() {
go sayHello() // spouštíme gorutinu
time.Sleep(time.Second) // čekáme, aby gorutina měla čas se dokončit
}