Sobes.tech
Junior — Middle

Jak jsou gorutiny implementovány a spravovány v jazyce Go?

sobes.tech AI

Odpověď od AI

Gorutiny v Go jsou lehké vlákna provádění, které spravuje běhové prostředí Go, nikoliv operační systém. Umožňují psát konkurenční kód s minimálními zdroji.

Hlavní aspekty implementace a správy gorutin:

  • Vytvoření: Gorutina se spustí pomocí klíčového slova go před voláním funkce.
  • Plánovač: Běhové prostředí Go má vlastní plánovač, který rozděluje gorutiny mezi systémové vlákna (plánování M:N).
  • Zásobník: Každá gorutina má dynamický zásobník, který může růst nebo se zmenšovat podle potřeby, začíná s několika kilobajty.
  • Komunikace: Pro synchronizaci a výměnu dat mezi gorutinami se používají kanály.

Příklad vytvoření gorutiny:

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

func main() {
    go sayHello() // spustí gorutinu
    time.Sleep(time.Second) // čeká, aby gorutina měla čas se dokončit
}

Tímto jsou gorutiny efektivní způsob paralelního provádění kódu s minimálními náklady.