Junior — Middle
¿Qué sucede dentro del sistema o programa cuando el búfer se llena por completo y cómo puede esto llevar a un bloqueo?
sobes.tech AI
Respuesta de la IA
Cuando el búfer en un programa en Go se llena por completo, la escritura posterior en él se bloquea hasta que se lean los datos del búfer. Esto se debe a que el búfer tiene un tamaño limitado.
Si el productor de datos (writer) continúa intentando escribir en el búfer lleno y el consumidor (reader) no lee los datos, la gorutina del productor se bloqueará. Si además el consumidor también espera al productor (por ejemplo, debido a un bloqueo mutuo), se produce una situación de bloqueo mutuo (deadlock), lo que lleva a que el programa se quede colgado.
Ejemplo: un canal con un tamaño de búfer de 2, donde se escriben datos más rápido de lo que se leen.