Junior — Middle
Co se stane, pokud provedete zápis do kanálu, jehož buffer je plně zaplněn?
sobes.tech AI
Odpověď od AI
V jazyce Go, pokud se pokusíte zapsat hodnotu do vyrovnávacího kanálu, který je plně zaplněn, operace zápisu se zablokuje, dokud se uvolní místo v kanálu (tj. dokud někdo nepročte z kanálu). To zajišťuje synchronizaci mezi gorutinami a zabraňuje ztrátě dat.
Příklad:
ch := make(chan int, 2) // buffer o 2 prvky
ch <- 1
ch <- 2
// ch <- 3 // zde se zápis zablokuje, dokud někdo nepročte z ch