Sobes.tech
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
}