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