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ť
}