Senior
Mit lehet használni az adatok átadására goroutine-ok között?
sobes.tech MI
Válasz az MI-től
Az adatok átadásához goroutine-ok között Go-ban általában csatornákat (channels) használnak. A csatornák biztonságos szinkronizációt és adatátvitelt biztosítanak, lehetővé téve, hogy a goroutine-ok értékeket cseréljenek explicit blokkolások nélkül.
Példa csatorna használatára:
ch := make(chan int)
// Adatok küldése goroutine-ban
go func() {
ch <- 42
}()
// Adatok fogadása
value := <-ch
fmt.Println(value) // 42
A csatornák mellett megosztott memória is használható szinkronizációval mutex segítségével a sync csomagból, de a csatornákat idiomatikusabb módszernek tekintik Go-ban.