Junior — Middle
Jak zarządzanie i rozdzielanie zadań między goroutines odbywa się w języku Go?
sobes.tech AI
Odpowiedź od AI
W języku Go zarządzanie i rozdzielanie zadań między gorutynami odbywa się za pomocą planisty (scheduler) wbudowanego w środowisko uruchomieniowe Go. Gorutiny to lekkie wątki, które uruchamia się za pomocą słowa kluczowego go.
Planista Go rozdziela gorutiny na wątki systemowe (OS threads) i zarządza ich wykonaniem, zapewniając współbieżność i równoległość. Używa modelu M:N, gdzie M to liczba wątków systemowych, a N to liczba gorutyn.
Przykład tworzenia gorutyny:
func sayHello() {
fmt.Println("Witaj z gorutyny")
}
func main() {
go sayHello() // uruchamia gorutynę
time.Sleep(time.Second) // czekamy, aby gorutyna zdążyła się wykonać
}
W ten sposób programista po prostu uruchamia gorutynę, a środowisko uruchomieniowe Go rozdziela zadania i przełącza się między nimi.