Junior — Middle
Můžete vysvětlit koncept lehkých vláken a jejich rozdíl od běžných vláken?
sobes.tech AI
Odpověď od AI
Lehké vlákna (goroutines v Go) jsou abstrakcí pro paralelní provádění kódu, která je lehčí a efektivnější z hlediska zdrojů než běžné systémové vlákno.
Rozdíly:
- Zdroje: goroutines zabírají mnohem méně paměti (obvykle několik kilobajtů), zatímco systémové vlákno vyžaduje mnohem více (obvykle megabajty).
- Plánování: goroutines jsou plánovány plánovačem Go uvnitř procesu, nikoli operačním systémem, což umožňuje rychlý přepínání mezi nimi.
- Vytváření: spuštění gorutiny je velmi rychlé a levné, lze jich vytvořit tisíce nebo i miliony současně.
Příklad vytvoření gorutiny:
func sayHello() {
fmt.Println("Ahoj z gorutiny")
}
func main() {
go sayHello() // spustí funkci v samostatné gorutině
time.Sleep(time.Second) // čeká, aby gorutina měla čas se dokončit
}
Tímto způsobem umožňují lehké vlákna efektivně využívat paralelismus bez velkých nákladů.