Junior — Middle
Jakie typy realizacji zadań równoległych znasz?
sobes.tech AI
Odpowiedź od AI
W Go zadania równoległe można realizować na kilka sposobów:
-
Goroutines — lekkie wątki uruchamiane za pomocą słowa kluczowego
go. Pozwalają na wykonywanie funkcji równolegle. -
Kanały — służą do komunikacji i synchronizacji między goroutines, umożliwiają bezpieczny transfer danych.
-
Pule workerów — grupa goroutines, które pobierają zadania z kolejki i je przetwarzają, pomagając kontrolować liczbę jednocześnie działających goroutines.
-
sync.WaitGroup — do oczekiwania na zakończenie grupy goroutines.
Przykład uruchomienia goroutine i przesłania danych przez kanał:
ch := make(chan int)
// Uruchom goroutine
go func() {
ch <- 42 // wysłanie wartości do kanału
}()
// Odbiór wartości z kanału
val := <-ch
fmt.Println(val)