Sobes.tech
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.