Junior — Middle
Cosa succede se si esegue una scrittura in un canale il cui buffer è completamente pieno?
sobes.tech AI
Risposta dell'AI
In Go, se si tenta di scrivere un valore in un canale con buffer che è completamente pieno, l'operazione di scrittura si bloccherà finché non ci sarà spazio nel canale (cioè, finché qualcuno non leggerà dal canale). Questo garantisce la sincronizzazione tra goroutine e previene la perdita di dati.
Esempio:
ch := make(chan int, 2) // buffer di 2 elementi
ch <- 1
ch <- 2
// ch <- 3 // qui la scrittura si bloccherà finché qualcuno non leggerà da ch