Sobes.tech
Senior

Co lze použít k přenosu dat mezi gorutinami?

sobes.tech AI

Odpověď od AI

Pro přenos dat mezi gorutinami v Go se obvykle používají kanály (channels). Kanály zajišťují bezpečnou synchronizaci a přenos dat, což umožňuje gorutinám vyměňovat si hodnoty bez explicitního blokování.

Příklad použití kanálu:

ch := make(chan int)

// Odeslání dat v gorutině
go func() {
    ch <- 42
}()

// Přijímání dat
value := <-ch
fmt.Println(value) // 42

Kromě kanálů lze použít sdílenou paměť s synchronizací přes mutex z balíčku sync, ale kanály jsou považovány za idiomatickejší způsob v Go.