Junior — Middle
Ce se întâmplă dacă se face o scriere într-un canal al cărui buffer este complet plin?
sobes.tech AI
Răspuns de la AI
În Go, dacă încerci să scrii o valoare într-un canal cu buffer, care este complet plin, operațiunea de scriere se va bloca până când va exista spațiu disponibil în canal (adică, până când cineva va citi din canal). Acest lucru asigură sincronizarea între goroutine-uri și previne pierderea de date.
Exemplu:
ch := make(chan int, 2) // buffer de 2 elemente
ch <- 1
ch <- 2
// ch <- 3 // aici, scrierea se va bloca până când cineva va citi din ch