Junior — Middle
Aké sú výhody používania gorutín v porovnaní so systémovými vláknami na zvýšenie výkonu aplikácií?
sobes.tech AI
Odpoveď od AI
Gorutiny v Go majú niekoľko výhod oproti systémovým vláknam:
- Ľahkosť: gorutiny zaberajú oveľa menej pamäte (zvyčajne niekoľko kilobajtov), zatiaľ čo systémové vlákna vyžadujú oveľa viac zdrojov.
- Škálovateľnosť: je možné spustiť tisíce alebo dokonca milióny gorutín súčasne, čo je s vláknami ťažké.
- Rýchla zmena kontextu: plánovač Go efektívne spravuje gorutiny a prepína medzi nimi rýchlejšie ako operačný systém medzi vláknami.
- Jednoduchosť synchronizácie: vstavané kanály a ďalšie primitívy uľahčujú výmenu dát medzi gorutinami.
Príklad vytvorenia gorutiny:
package main
import (
"fmt"
"time"
)
func sayHello() {
fmt.Println("Ahoj z gorutiny")
}
func main() {
go sayHello() // spustenie gorutiny
time.Sleep(time.Second) // počkáme, až sa gorutina dokončí
}