Junior — Middle
Jakie są zalety korzystania z gorutyn w porównaniu z wątkami systemowymi w celu zwiększenia wydajności aplikacji?
sobes.tech AI
Odpowiedź od AI
Gorutyny w Go mają kilka zalet w porównaniu do wątków systemowych:
- Lekkość: gorutyny zajmują znacznie mniej pamięci (zwykle kilka kilobajtów), podczas gdy wątki systemowe wymagają znacznie więcej zasobów.
- Skalowalność: można uruchamiać tysiące, a nawet miliony gorutyn jednocześnie, co jest trudne z wątkami.
- Szybka zmiana kontekstu: planista Go efektywnie zarządza gorutynami, przełączając się między nimi szybciej niż system operacyjny między wątkami.
- Prostota synchronizacji: wbudowane kanały i inne prymitywy upraszczają wymianę danych między gorutynami.
Przykład tworzenia gorutyny:
package main
import (
"fmt"
"time"
)
func sayHello() {
fmt.Println("Cześć z gorutyny")
}
func main() {
go sayHello() // uruchom gorutynę
time.Sleep(time.Second) // poczekaj, aż gorutyna się wykona
}