Sobes.tech
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