Junior — Middle
Jaký je rozdíl mezi gorutinou a systémovým vláknem v kontextu vykonávání úkolů?
sobes.tech AI
Odpověď od AI
Gorutina je lehká jednotka provádění řízená prostředím běhového prostředí Go (runtime), která používá velmi málo paměti a může být spuštěna ve velkém množství současně. Systémový vlákno (thread) je těžší jednotka plánování operačního systému.
Hlavní rozdíly:
- Gorutiny jsou mnohem lehčí z hlediska zdrojů než systémová vlákna.
- Plánování gorutin probíhá uvnitř runtime Go, nikoli operačním systémem.
- Tisíce gorutin mohou pracovat současně, zatímco počet systémových vláken je obvykle menší kvůli nákladům na vytvoření a přepínání.
Příklad vytvoření gorutiny:
func úkol() {
fmt.Println("Vykonávání úkolu")
}
func main() {
go úkol() // spuštění gorutiny
time.Sleep(time.Second) // čekáme, aby gorutina měla čas se dokončit
}
Tímto způsobem gorutiny umožňují efektivně vykonávat mnoho úkolů paralelně s menšími režijními náklady.