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