Sobes.tech
Junior — Middle

Lze kanály použít jako mechanismus pro koordinaci provádění úkolů mezi gorutinami?

sobes.tech AI

Odpověď od AI

Ano, v Go jsou kanály (channels) hlavním mechanismem pro koordinaci a synchronizaci provádění úkolů mezi gorutinami. Umožňují bezpečně přenášet data mezi gorutinami a současně blokují odesílatele nebo příjemce, dokud druhá strana není připravena.

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

ch := make(chan int)
func() {
    // Provádění úkolu
    ch <- 1 // Odeslání signálu o dokončení
}()

// Čekání na signál z gorutiny
<-ch

Tímto způsobem kanály pomáhají předcházet závodům dat a zjednodušují synchronizaci mezi gorutinami.