Sobes.tech
Junior — Middle

Jaké jsou výhody používání gorutin ve srovnání se systémovými vlákny pro zvýšení výkonu aplikací?

sobes.tech AI

Odpověď od AI

Gorutiny v Go mají několik výhod oproti systémovým vláknům:

  • Lehkost: gorutiny zabírají mnohem méně paměti (obvykle několik kilobajtů), zatímco systémová vlákna vyžadují mnohem více zdrojů.
  • Škálovatelnost: je možné spustit tisíce nebo dokonce miliony gorutin současně, což je s vlákny složité.
  • Rychlá změna kontextu: plánovač Go efektivně spravuje gorutiny a přepíná mezi nimi rychleji než operační systém mezi vlákny.
  • Jednoduchost synchronizace: vestavěné kanály a další primitives usnadňují výměnu dat mezi gorutinami.

Příklad vytvoření gorutiny:

package main
import (
    "fmt"
    "time"
)

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

func main() {
    go sayHello() // spuštění gorutiny
    time.Sleep(time.Second) // počkáme, až se gorutina dokončí
}