Sobes.tech
Junior — Middle

Čo robí goroutines efektívnejšími v porovnaní s tradičnými vláknami?

sobes.tech AI

Odpoveď od AI

Gorutiny v Go sú efektívnejšie v porovnaní s tradičnými vláknami vďaka niekoľkým kľúčovým vlastnostiam:

  • Ľahkosť: Gorutiny zaberajú veľmi málo pamäte (zvyčajne okolo 2 KB zásobníka), zatiaľ čo systémové vlákna vyžadujú oveľa viac pamäte.
  • Plánovač na úrovni jazyka: Go má vlastný plánovač gorutín, ktorý efektívne rozdeľuje ich vykonávanie na systémové vlákna, čo umožňuje spúšťať tisíce gorutín súčasne bez významných nákladov.
  • Rýchle vytváranie a prepínanie kontextu: Vytváranie a prepínanie medzi gorutinami je oveľa rýchlejšie než medzi OS vláknami, čo znižuje náklady na multitasking.

Príklad vytvorenia gorutiny:

func sayHello() {
    fmt.Println("Ahoj z gorutiny")
}

func main() {
    go sayHello() // spustenie gorutiny
    time.Sleep(time.Second) // čakáme, aby gorutina mohla vykonať
}