Sobes.tech
Junior — Middle

Wat gebeurt er als je schrijft naar een kanaal waarvan de buffer volledig gevuld is?

sobes.tech AI

Antwoord van AI

In Go, als je probeert een waarde te schrijven naar een gebufferd kanaal dat volledig vol is, wordt de schrijfbewerking geblokkeerd totdat er ruimte vrij komt in het kanaal (dat wil zeggen, totdat iemand uit het kanaal leest). Dit zorgt voor synchronisatie tussen goroutines en voorkomt dat gegevens verloren gaan.

Voorbeeld:

ch := make(chan int, 2) // buffer van 2 elementen
ch <- 1
ch <- 2
// ch <- 3 // hier wordt de schrijfbewerking geblokkeerd totdat iemand uit ch leest