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
gopř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.