Junior — Middle
Milyen típusú párhuzamos feladatmegvalósításokat ismersz?
sobes.tech MI
Válasz az MI-től
A Go-ban a párhuzamos feladatokat többféleképpen lehet megvalósítani:
-
Goroutines — könnyű szálak, amelyeket a
gokulcsszóval indítanak. Lehetővé teszik funkciók párhuzamos végrehajtását. -
Csatornák — kommunikációra és szinkronizációra szolgálnak a goroutine-ok között, biztonságos adatátvitelt tesznek lehetővé.
-
Worker pool-ok — olyan goroutine-ok csoportja, amelyek feladatokat vesznek egy sorból és dolgoznak rajtuk, segítve a párhuzamosan futó goroutine-ok számának kontrollját.
-
sync.WaitGroup — a goroutine-ok csoportjának befejeződésére való várakozásra.
Példa egy goroutine indítására és adatküldésre csatornán keresztül:
ch := make(chan int)
// Goroutine indítása
go func() {
ch <- 42 // érték küldése a csatornára
}()
// Érték fogadása a csatornáról
val := <-ch
fmt.Println(val)